How would one make a javascript function which constantly checks to see if the user has input data into one or more textboxes? Thanks!
问问题
2122 次
4 回答
3
你不应该使用setInterval
. 你应该使用onchange
事件。
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 的组合mousedown
以keydown
检测keyup
输入数据的所有可能方式keypress
,keyup
然后将 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 回答