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