ユーザーが数値データのみを入力できるテキストボックスがあります。jQueryのキー入力イベントがユーザーの入力に遅れます
$('#ssn').keyup(function() {
var val = this.value.replace(/\D/g, '');
this.value = val;
});
私はに実行している問題は、制限されたキーにユーザーキーアップは、一瞬の文字が表示さは、それがで置き換えられています前に、タイムラグがある:私は、テキストボックスのkeyUpイベントに次の関数を使用しています空の文字列キーを押し続けると、キーが離されるまで文字列がボックスに表示されます。この現象を防ぐ方法はありますか? keydownやkeypressのような別のキーボードイベントを試してみましたが、それ以上の動作をしていないようです。ここ は、問題のフィドルです:答え
よりもむしろkeyup
イベントを聴くに私のコメントを変換https://jsfiddle.net/oxpy96g9/
'遅れは' 'keyuとして避けられませんキーが離されて値が入力フィールドに追加されるまで、「p」イベントは発生しません。 –
1.スローダウンはjQuery によって導入されました。2.反復変数宣言 によって減速が導入されました。3. JavaScript Regexマシン の起動により減速が導入されます。4.ユーザーがキーを離した後にコードが実行されます。減速。まったく、あなたは混乱を書きました。 –
代わりに 'input'イベントを聞いてみてください。' $( '#ssn')。on( 'input'、function(){...}); ' –