ユーザーが1つ以上のテキストボックスにデータを入力したかどうかを常にチェックするjavascript関数をどのように作成しますか?ありがとう!
4 に答える
は使用しないでくださいsetInterval
。onchange
イベントを使用する必要があります。
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
。ブラウザがフリーズします!!
この関数を使用して、window.setInterval
一定の間隔でいくつかの関数を実行できます。
window.setInterval(function() {
// do your check here => this will run every second
}, 1000);
setInterval
テキストエリアの値を定期的にチェックする関数を実行するか、、、、、およびイベントの組み合わせmousedown
をバインドしてデータを入力するすべての可能な方法を検出し、テキストエリアのテキストの現在の長さを最後の値(最初は0)で、変更があるかどうかを確認します。ある場合は、関数を呼び出します。keydown
keyup
keypress
keyup
window.setInterval(function() {
if(($('#textbox').val() != "")){
//do something or call function
}
else{
// do something or call function
}
}, 1000);