Javascript 如何检查文本框中的某个值,如果该值在3秒钟内未更改,则执行某些操作,否则在3秒钟后再次检查?
这是我的尝试,但我相信“checkerthisVal”是导致问题的部分Javascript 如何检查文本框中的某个值,如果该值在3秒钟内未更改,则执行某些操作,否则在3秒钟后再次检查?,javascript,jquery,Javascript,Jquery,这是我的尝试,但我相信“checkerthisVal”是导致问题的部分 $("#search-input").keyup(function () { var thisVal = $(this).val(); if(thisVal!=''){ var checker = function (v){ if($(this).val() !=v){ setTimeout(
$("#search-input").keyup(function () {
var thisVal = $(this).val();
if(thisVal!=''){
var checker = function (v){
if($(this).val() !=v){
setTimeout('checker(thisVal)', 3000);
}
else{
console.log($(this).val());
}
}
setTimeout(function(){checker(thisVal)}, 3000);
}
});
谢谢。我相信您希望将此作为超时线:
setTimeout(function(){checker(thisVal)}, 3000);
编辑:尝试此代码
$("#search-input").keyup(function() {
var thisVal = $(this).val();
if (thisVal !== '') {
var checker = function(v) {
if (thisVal !== v) {
setTimeout('checker(thisVal)', 3000);
}
else {
console.log(thisVal);
}
}
setTimeout(function() {
checker(thisVal)
}, 3000);
}
});
.我相信您希望将此作为超时线:
setTimeout(function(){checker(thisVal)}, 3000);
编辑:尝试此代码
$("#search-input").keyup(function() {
var thisVal = $(this).val();
if (thisVal !== '') {
var checker = function(v) {
if (thisVal !== v) {
setTimeout('checker(thisVal)', 3000);
}
else {
console.log(thisVal);
}
}
setTimeout(function() {
checker(thisVal)
}, 3000);
}
});
.我想我会采取不同的方法来解决这个问题
var that = $(this);
var thisVal = that.val();
var refreshIntervalId = setInterval(function(){
if(that.val() === thisVal){
console.log(thisVal);
}
}, 3000);
clearInterval(refreshIntervalId);//will stop the checks
我想我会采取不同的方法来解决这个问题
var that = $(this);
var thisVal = that.val();
var refreshIntervalId = setInterval(function(){
if(that.val() === thisVal){
console.log(thisVal);
}
}, 3000);
clearInterval(refreshIntervalId);//will stop the checks
使用Function.call可以在函数运行时定义此选项。当checker从keyup事件运行时,这是输入元素。当它从setInterval运行时,这通常是窗口对象。调用函数允许您再次将其设置为输入元素
使用Function.call可以在函数运行时定义此选项。当checker从keyup事件运行时,这是输入元素。当它从setInterval运行时,这通常是窗口对象。调用函数可以让您再次将其设置为输入元素。我想您需要这个 请查看此库: 另外,我给你举了一个例子:
希望这有帮助:-我想你需要这个 请查看此库: 另外,我给你举了一个例子:
希望这有帮助:-他无法将值传递到setTimeout。他无法将值传递到setTimeout。这解决了错误,但现在我有了一个新的错误:console.log$this.val;请查看我编辑的代码。谢谢。错误是无法调用undefined的方法'toLowerCase',并指向console.log行,这是因为当从setTimeout而不是从keyup事件调用checker时,这已更改。这解决了错误,但现在我在这里有一个新的方法:console.log$this.val;请查看我编辑的代码。谢谢。错误是无法调用undefined的方法“toLowerCase”,并指向console.log行,这是因为在从setTimeout而不是从keyup事件调用checker时,这已更改。