テキスト入力の内容を変更するすべてのイベントをチェックする必要があります。これまでのところ、キーアップ、カット アンド ペーストのハンドラがあります。ただし、テキストを強調表示して削除または元に戻すをクリックすることで、内容を変更することもできます。これらのイベントをリッスンする方法はありますか?
$('#input').on('paste cut keyup ',function() {
//add delete and undo to listner
});
テキスト入力の内容を変更するすべてのイベントをチェックする必要があります。これまでのところ、キーアップ、カット アンド ペーストのハンドラがあります。ただし、テキストを強調表示して削除または元に戻すをクリックすることで、内容を変更することもできます。これらのイベントをリッスンする方法はありますか?
$('#input').on('paste cut keyup ',function() {
//add delete and undo to listner
});
と を使用することをお勧めしkeydown
ますinput
: http://jsfiddle.net/vKRDR/
var timer;
$("#input").on("keydown input", function(){
var self = this;
clearTimeout(timer)
// prevent event from happening twice
timer = setTimeout(function(){
console.log(self.value);
},0);
});
keyup は ctrl などの特殊キーをキャッチしません。入力は、コンテキスト メニューからでも貼り付け削除などをキャッチします。
キーダウンと入力を使用すると、ユーザーがボタンを離したり、入力をぼかしたりするのを待つのではなく、イベントがすぐに発生します。
キーダウンはほとんどの作業を行い、コンテキストメニューの削除/貼り付け/切り取りなど、キーダウンが処理できない場所で入力が取得されます
少なくともキープレスと変更がありません。「変更」がこれらのアクションで機能するかどうかはわかりませんが、入力要素がフォーカスを失ったときに変更が呼び出されることが多いことは知っています。
change イベントを使用します。
$('#input').on('change', function(){});