Javascript Jquery函数在页面加载后只执行一次
如下所示:我想在用户完成键入(等待2秒)后触发函数Javascript Jquery函数在页面加载后只执行一次,javascript,jquery,Javascript,Jquery,如下所示:我想在用户完成键入(等待2秒)后触发函数doneTyping(),但它只有在我第一次加载页面或点击刷新后才会触发。如果我多次更改textbox ResidentialZipCode中的内容,它根本不起作用 $(document).ready(function () { var typingTimer; //timer identifier var doneTypingInterval = 2000; //on keyup, start the countdown
doneTyping()
,但它只有在我第一次加载页面或点击刷新后才会触发。如果我多次更改textbox ResidentialZipCode中的内容,它根本不起作用
$(document).ready(function () {
var typingTimer; //timer identifier
var doneTypingInterval = 2000;
//on keyup, start the countdown
function checkForChange() {
debugger;
clearTimeout(typingTimer);
if ($('#Residential_txt').val) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
}
function doneTyping() {
//do something
}
$("#Residential_txt").on('input change paste cut', checkForChange);
}
有什么需要纠正的吗
val
是一个函数,而不是属性。所以试着改变
if ($('#ResidentialZipCode_txt').val) {
到
#.val()
方法,而不是属性还应修复此问题,因为未定义的属性#。val
将返回“未定义”,从而使if语句失败为false。提示:在jQuery文档就绪处理程序
之外声明checkForChange()
和doneTyping()
函数。您有小提琴要测试吗?@kodleyin谢谢,但问题依然存在!您正在使用idResidentialZipCode\u txt
处理元素上的事件,并且您的函数正在测试另一个元素,idResidentialZipCode\u txt
。这是正确的还是仅仅是一个打字错误?或者您实际上有多个输入
,并且想要检查所有输入?在OP的代码中,他没有将val
用作函数,因此您所说的不是真的。此外,如果值为空或null,则函数不会是“truthy”。@Nicholas$(“…”)。val
将返回(不调用)函数本身。功能是真实的。
if ($('#ResidentialZipCode_txt').val()) {