jQueryで入力の変更を検出しますか? 質問する

jQueryで入力の変更を検出しますか? 質問する

jQueryを使用する場合、.changeイベントinputは入力がフォーカスを失ったときにのみ発生します。

私の場合、入力値が変更されるとすぐにサービスを呼び出す(値が有効かどうかをチェックする)必要があります。 これを実現するにはどうすればよいでしょうか?

ベストアンサー1

説明と例のために更新されました

例:http://jsfiddle.net/pxfunc/5kpeJ/

方法1.inputイベント

最近のブラウザではinputイベント。このイベントは、ユーザーがテキスト フィールドに入力したり、貼り付けたり、元に戻したり、基本的に値がある値から別の値に変更されたときに発生します。

jQueryでは次のようにします

$('#someInput').bind('input', function() { 
    $(this).val() // get the current value of the input field.
});

jQuery 1.7 以降では、次bindのように置き換えますon:

$('#someInput').on('input', function() { 
    $(this).val() // get the current value of the input field.
});

方法2.keyupイベント

古いブラウザでは、keyupイベントを使用します (これは、キーボードのキーが放されるとすぐに発生します。このイベントは、"w" キーが放されると入力値が変更されイベントが発生するため、一種の誤検知を引き起こす可能性がありますkeyupが、"shift" キーが放されるとイベントが発生しますkeyupが、入力に変更は加えられていません)。また、ユーザーが右クリックしてコンテキスト メニューから貼り付ける場合、このメソッドは発生しません。

$('#someInput').keyup(function() {
    $(this).val() // get the current value of the input field.
});

方法3. タイマー(setIntervalまたはsetTimeout

の制限を回避するには、keyup入力の値を定期的にチェックして値の変化を判断するタイマーを設定できます。このタイマー チェックを行うにはsetInterval、またはを使用できますsetTimeout。この SO の質問のマークされた回答を参照してください。jQuery テキストボックス変更イベントまたは、特定の入力フィールドのタイマーを開始および停止するためのイベントfocusを使用した動作例については、フィドルを参照してください。blur

おすすめ記事