挿入直後にテキストフィールドに挿入された値を検出するにはどうすればよいですか? change
バーコードスキャナから新しい値が挿入されるため、フォーカスが失われた後にのみイベントが発生keyPress, keyUp, keyDown
します(このキーボードイベントは発生しません)。タイマーのみを使用し、テキスト フィールドの値を定期的にチェックしますか?
2 に答える
イベントをご利用いただけますoninput
。フィールドに入力が行われるたびにトリガーされます。
詳細については、このブログから引用を取得します:http ://whattheheadsaid.com/2010/09/effectively-detecting-user-input-in-javascript( @AndyEによって書かれました)
オンキーダウンとタイマーについて話します...
ただし、これでもキーボードを使用しない入力は処理されません。他にどのような種類の入力がありますか?コンテキストメニューのアクションはどうですか。切り取り、貼り付け、元に戻す、やり直し?ドラッグアンドドロップ?しばらくの間、他の種類の入力変更を処理するイベントがありました–いくつかのブラウザーは、onpaste、oncut、およびoncopyイベントをサポートします–しかし、それらは非標準であり、一部のベンダーはそれらを実装するには頑固すぎます。
入力時にHTML5イベントを入力します。
クロスブラウザのjQueryプラグインについては、次のプラグインをご覧ください(同じ作成者):http ://whattheheadsaid.com/projects/input-special-event
あなたはこれを意味しますhttp://jsfiddle.net/SP69J/10/
関数
$(document).ready(check);
var previousvalue="";
function check(){
var val=$("#inputcontrol").val();
var interval;
interval = window.clearInterval(interval);
if(val!=previousvalue){
alert("value changed");
previousvalue=$("#inputcontrol").val();
}
interval = window.setInterval(check, 500);
}
必要に応じて間隔を設定します。
HTML:
<input type="text" id="inputcontrol">