2

私はJavaスクリプトの初心者です。キープレスと変更イベントについて少し混乱しています。

以下はサンプルコードです

 $("input").live('change',function ()
    {
       Alert("Change event call");
    });

    /
    $("input").live('keypress',function ()
    {            
       Alert("Keypress event call");
    });

Keypress イベントが call と change イベント コールの正確なタイミングはいつですか?

4

5 に答える 5

6

イベントを変更

change値が変更されると、イベントが要素に送信されます。このイベントは、<input>要素、<textarea>ボックス、および<select> 要素に限定されます。選択ボックス、チェックボックス、およびラジオ ボタンの場合、ユーザーがマウスで選択を行うとすぐにイベントが発生しますが、他の要素タイプの場合、要素がフォーカスを失うまでイベントは延期されます。

キープレスイベント

keypressブラウザがキーボード入力を登録すると、イベントが要素に送信されます。keydownこれは、キーの繰り返しの場合を除いて、イベントに似ています。ユーザーがキーを押したままにすると、イベントが 1 回トリガーされますが、挿入された文字ごとにkeydown 個別のイベントがトリガーされます。keypressさらに、修飾キー ( など Shift) はイベントをトリガーしますが、イベントはトリガーkeydownしませんkeypress

イベント ハンドラーは任意のkeypress要素にアタッチできますが、イベントはフォーカスを持つ要素にのみ送信されます。フォーカス可能な要素はブラウザーによって異なりますが、フォーム要素は常にフォーカスを取得できるため、このイベント タイプの妥当な候補です。

参考文献:

于 2012-11-23T09:19:33.050 に答える
4

change イベントは、要素がフォーカスを失ったときに値が変更された場合に発生します。keypress イベントは、(コントロール以外の) キーを押して離すたびに発生します。

于 2012-11-23T09:19:12.597 に答える
1

keypressキーボードのキーをクリックしたことを意味します

changeアイテムの値を変更したことを意味します

于 2012-11-23T09:20:01.100 に答える
0

いくつかのキーを押しても値は変わりません。たとえば、Enter キーまたは Ctrl キーを押しても、input の値は変更されません。

于 2012-11-23T09:19:28.493 に答える