您好我该如何设置计时器?我尝试了超时:3000但它不起作用这是我的代码:
$(document).ready(function(){
$("#Name").keyup(function(){
$.ajax({
timeout: 3000,
type: "POST",
url: "search2.php",
data:'name='+$(this).val(),
})
.fail(function() {
console.log("error");
}).success(function(response){
console.log(response);
});
});
});
它一直为我输入的每个字符调用ajax调用。
非常感谢
答案 0 :(得分:4)
您可以使用超时去除键盘事件,例如:
$(document).ready(function () {
var timeout;
$("#Name").keyup(function () {
clearTimeout(timeout);
timeout = setTimeout(livesearch.bind(this), 3000);
// or to support IE8: timeout = setTimeout($.proxy(livesearch, this), 3000);
});
function livesearch() {
$.ajax({
type: "POST",
url: "search2.php",
data: 'name=' + this.value,
}).fail(function () {
console.log("error");
}).success(function (response) {
console.log(response);
});
}
});
答案 1 :(得分:3)
您可以使用setTimeout
来延迟搜索,例如:
var timeout;
$("#Name").keyup(function() {
var $this = $(this);
if(timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function() {
$.ajax({
type: "POST",
url: "search2.php",
data: 'name=' + $this.val(),
})
.fail(function() {
console.log("error");
}).success(function(response) {
console.log(response);
});
}, 3000);
});