- - PR -
Altキーがevent.altKeyで検知できないのはなぜ?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-16 18:27
画面上でなにがしかのキーが押下されたら(onkeypressで検知)、
javascript関数を呼び出し、その関数内でAltキー+Hかどうか判断したいのです。 いまはデバックのためにevent.altKeyの値をalertで出力しています。 普通のアルファベットキーやEscキーを押下する分にはevent.altKeyの値がfalseとして検知できるのに、shiftキーやCtrlキーや肝心のAltキーを押下したときにfalseともtrueとも判定できないのです。 おそらく、onkeypressがそのキーのときだけ機能してないようなきがします。 なぜでしょうか? すいません、おしえてください。 | ||||
|
投稿日時: 2006-08-16 18:34
え? [Shift] キーは event.shiftKey、[Ctrl] キーは event.ctrlKey ですから、 event.altKey のみで判別しようとしていること自体が誤りな気がします... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-08-16 18:56
onkeydownの方にしたらよいのではないかと思います。
| ||||
|
投稿日時: 2006-08-16 19:05
じゃんぬねっとさん、すいません、ちょっと言葉足らずでした。
event.altKeyにはAltが押されてたらtrue,それ以外(Ctrlとかshiftとかも含めて)はfalseで判定できると思っていたので、あえてevent.altKeyだけで判定してます。 sawatさん、onkeydownで試したところ、Altキーは検知できるのですが、Alt+Hを押す場合もAlt+Nを押す場合もevent.altKeyはtrueになりますが、event.keyCodeが18のままになってしまいます。 Altキー+何かのキーを押下したときにはどうしたらいいでしょうか [ メッセージ編集済み 編集者: りりー 編集日時 2006-08-16 19:21 ] | ||||
|
投稿日時: 2006-08-16 19:11
補足ですが、onkeypressイベントは、「文字が入力される」ようなキーを押したときしか反応しないようです。
なので、矢印キーとかHomeキーとかを押してもイベントは発生しません。 同様にAlt+アルファベットキーも文字は入力されないので、イベントが発生しないようです。 | ||||
|
投稿日時: 2006-08-16 19:31
onkeypressで検知した値とonkeydownで検知した値を、例えばonkeyupで組み合わせて使うとどうでしょうかね?
| ||||
|
投稿日時: 2006-08-16 19:53
みなさま、ありがとうございます。解決しました。
ボタンを用意して それにaccesskey属性を付加してアルファベットキーを割り振りました。IE6を使用しているので、Alt+割り振ったキーでclickが発生しました。 お騒がせしました。ありがとうございます。 |
1