0

ユーザーが1つ以上のテキストボックスにデータを入力したかどうかを常にチェックするjavascript関数をどのように作成しますか?ありがとう!

4

4 に答える 4

3

は使用しないでくださいsetIntervalonchangeイベントを使用する必要があります。

http://jsfiddle.net/QwBU8/を参照してください

document.getElementById('myinput').onchange=change;
document.getElementById('mytextarea').onchange=change;
function change(e){
    if(!e){e=window.event;}
    document.getElementById('log').innerHTML+='Element with id "'+this.id+'" has changed\n';  
}

ただし、テキストボックスが変更された時点では、このイベントは発生しないことに注意してください。フォーカスを失ったときに発生します(もちろん、変更された場合のみ)。

変更するたびにイベントを発生させたい場合は、使用できますoninput(ただし、すべてのブラウザーでサポートされているわけではありません)。

ただし、使用setIntervalは避けてください。多くのリソースを消費します。ブラウザで30個のタブを開いていて、それらすべてに異なるタブがあるとしますsetInterval。ブラウザがフリーズします!!

于 2012-08-14T18:54:45.577 に答える
1

この関数を使用して、window.setInterval一定の間隔でいくつかの関数を実行できます。

window.setInterval(function() {
    // do your check here => this will run every second
}, 1000);
于 2012-08-14T18:48:26.253 に答える
1

setIntervalテキストエリアの値を定期的にチェックする関数を実行するか、、、、、およびイベントの組み合わせmousedownをバインドしてデータを入力するすべての可能な方法を検出し、テキストエリアのテキストの現在の長さを最後の値(最初は0)で、変更があるかどうかを確認します。ある場合は、関数を呼び出します。keydownkeyupkeypresskeyup

于 2012-08-14T18:51:23.327 に答える
1
window.setInterval(function() {
   if(($('#textbox').val() != "")){
        //do something  or call function
}
else{
       // do something or call function    
}

}, 1000);
于 2012-08-14T18:52:44.650 に答える