最佳答案
我希望在停止在输入文本框中键入(而不是在键入时)字符后触发一个事件。
我试过:
$('input#username').keypress(function() {
var _this = $(this); // copy of this object for further usage
setTimeout(function() {
$.post('/ajax/fetch', {
type: 'username',
value: _this.val()
}, function(data) {
if(!data.success) {
// continue working
} else {
// throw an error
}
}, 'json');
}, 3000);
});
但是这个示例为每个输入的字符产生一个超时,如果我输入20个字符,就会收到大约20个 AJAX 请求。
在这个小提琴 中,我用一个简单的警报代替 AJAX 演示了同样的问题。
有没有解决办法,或者我只是用了一个糟糕的方法来解决这个问题?