0

onkeyupイベント リスナーに関連付けられているテキスト ボックスがあります (javascript 関数、何かを警告するとします)。例として-

<input type='text' name='text1' onkeyup='exec(this.value);'/>
<script>
exec = function(textdata) { alert(textdata); }
</script>

この場合、ユーザーがキーボードで何かを押すたびに警告メッセージが表示されます。

イベントハンドラーが数秒間非アクティブになった後にのみ処理を続行する場合でも、処理する方法はありますか? つまり、この場合、警告メッセージは、ユーザーが長いテキストの入力を完了し、さらに何かを追加するかどうかを考えている場合にのみ表示されます。たとえば、名前を入力して 2 秒待った後、警告メッセージが表示され、名前の各文字を入力している間は警告メッセージは表示されません。

4

2 に答える 2

1

キーが押されるたびに関数を実行したい場合onkeyupは、ではなく使用する必要があります。onchange必要な機能についてこれを試してください

<input type='text' name='text1' onkeyup='exec(this.value);'/>
<script>

var timer; //This needs to be a global variable

exec = function(textData){

  clearTimeout(timer);

  timer = setTimeout(function(){ alert(textData) }, 2000);  
}
</script>

ユーザーがキーを押す (テキスト ボックスに文字を入力する) たびに、関数が呼び出され、タイマーがクリアされます。タイマーは、2 秒後にテキストボックスの値を警告するように設定されます。2 秒が経過する前に再度いずれかのキーを押すと、タイマーはリセットされます。これが動作するjsFiddleです。

于 2012-09-17T09:07:56.520 に答える
0

コードでは、テキストボックスを離れるたびにテキストのみが警告されます。それが の振る舞いですonchange。アイテムがトリガーされる前に、アイテムへのフォーカスを失う必要があります。

onkeyupユーザーがalert()テキストボックス内で何かを押すたびに。

于 2012-09-17T09:04:07.263 に答える