- PR -

Altキーがevent.altKeyで検知できないのはなぜ?

1
投稿者投稿内容
りりー
常連さん
会議室デビュー日: 2006/08/03
投稿数: 31
投稿日時: 2006-08-16 18:27
画面上でなにがしかのキーが押下されたら(onkeypressで検知)、
javascript関数を呼び出し、その関数内でAltキー+Hかどうか判断したいのです。
いまはデバックのためにevent.altKeyの値をalertで出力しています。
普通のアルファベットキーやEscキーを押下する分にはevent.altKeyの値がfalseとして検知できるのに、shiftキーやCtrlキーや肝心のAltキーを押下したときにfalseともtrueとも判定できないのです。
おそらく、onkeypressがそのキーのときだけ機能してないようなきがします。
なぜでしょうか?

すいません、おしえてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-16 18:34
引用:

りりーさんの書き込み (2006-08-16 18:27) より:

shiftキーやCtrlキーや肝心のAltキーを押下したときにfalseともtrueとも判定できないのです。


え? [Shift] キーは event.shiftKey、[Ctrl] キーは event.ctrlKey ですから、
event.altKey のみで判別しようとしていること自体が誤りな気がします...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2006-08-16 18:56
onkeydownの方にしたらよいのではないかと思います。
りりー
常連さん
会議室デビュー日: 2006/08/03
投稿数: 31
投稿日時: 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 ]
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2006-08-16 19:11
補足ですが、onkeypressイベントは、「文字が入力される」ようなキーを押したときしか反応しないようです。
なので、矢印キーとかHomeキーとかを押してもイベントは発生しません。
同様にAlt+アルファベットキーも文字は入力されないので、イベントが発生しないようです。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-08-16 19:31
onkeypressで検知した値とonkeydownで検知した値を、例えばonkeyupで組み合わせて使うとどうでしょうかね?
りりー
常連さん
会議室デビュー日: 2006/08/03
投稿数: 31
投稿日時: 2006-08-16 19:53
みなさま、ありがとうございます。解決しました。
ボタンを用意して それにaccesskey属性を付加してアルファベットキーを割り振りました。IE6を使用しているので、Alt+割り振ったキーでclickが発生しました。

お騒がせしました。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)