我想获取输入字段的值并发送ajax请求。如果我使用keyup或keypress或更改,则该值立即可用并发送请求。我想等待用户,例如1或2秒,以便他输入整个单词然后发送ajax请求。 我的代码是这样的,以获得vlaue。感谢。
var timeout = window.setTimeout(function() {
$('input#search').keyup(function() {
var key = $("#search").val();
console.log(key);
});
}, 1000);
clearTimeout(timeout);
答案 0 :(得分:3)
您需要使用计时器,然后使用clearTimeout将其重置为用户键入。此代码将执行您想要的操作,此处为jsFiddle。
var Timer;
function Start() {
$('#TheInput').keyup(function () {
clearTimeout(Timer);
Timer = setTimeout(SendRequest, 1000);
});
}
function SendRequest() {
var key = $("#TheInput").val();
alert(key);
}
$(Start);
答案 1 :(得分:2)
每次调用该函数时,都应该清除超时并设置一个新的,试试这个:
(function () {
var timeout = {};
var update = function () {
clearTimeout(timeout);
timeout = setTimeout(function () {
var key = $('#search').val();
console.log(key);
}, 1000);
};
$('input#search').keyup(update);
$('input#search').change(update);
}());