0

How would one make a javascript function which constantly checks to see if the user has input data into one or more textboxes? Thanks!

4

4 回答 4

3

你不应该使用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. 浏览器会死机!!

于 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定期检查 textarea 值的函数,或者绑定 、 、 和 events 的组合mousedownkeydown检测keyup输入数据的所有可能方式keypresskeyup然后将 textarea 文本的当前长度与最后一个值(0,最初)来查看是否有变化。如果有,请调用该函数。

于 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 回答