JavaScriptでの , , ,keydown
イベントkeypress
のkeyup
さまざまな使用法を区別しようとしています。input
change
JavaScript オートコンプリート検索ボックスの場合、input
イベント ハンドラーを使用する必要があるというのは本当ですか?
その理由は:
イベント ハンドラーは、
change
ユーザーが Enter キーを押すか、その入力ボックスを離れる (Tab キーを押すか、入力ボックスの外側をクリックする) まで呼び出されないためchange
、ユーザーがもう 1 つ入力したときに、イベントが提案を行う目的に適合しない可能性があります。文字を入力ボックスに。keydown
イベント ハンドラーを使用してキーストロークを検索用語に「追加」できますが、CTRL-v または CMD-v (Mac の場合) で貼り付ける場合、そのような単語を貼り付けると、実際には 1 つずつ取得できませんkeyCode
。検索ボックスと同じように -- ではなくhello
CTRL 用のキーダウンと , 用のキーダウンが 1 つだけになるため-- しかし、入力ボックスの属性を使用して値を取得できます -- ただし、ユーザーがマウスを使用してボックスにテキストを追加するには、右クリックして [貼り付け] を選択します。この場合、マウス イベント ハンドラを使用して属性を確認する必要がありますか? このような低レベルのキーボードとマウスを扱うのは面倒です。v
hello
value
value
したがって、値が変更されるとイベントハンドラーが呼び出されるinput
ため、イベントハンドラーは正確な目的に適合しているように見えます。input
そのため、input
イベント ハンドラーが重要かつ有用な場合があります。
keydown
ユーザーが下矢印キーを押して可能なアイテムのリストを下に移動した場合はどうなるでしょうか。(そしておそらく、オートコンプリートの提案ボックスを非表示にするための ESC)。このような場合、input
イベント ハンドラーとchange
イベント ハンドラーは呼び出されず、keydown
イベントはこれらの場合に役立ちます。
input
主にイベントを理解するために、上記の概念は正しいですか?
(どのイベント ハンドラーが呼び出されるかを理解するための jsfiddle: http://jsfiddle.net/jYsjs/ )