我希望在输入框中停止输入文字后立即触发事件(而不是在输入期间)。
我已尝试使用:
$('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。
是否有解决方法,还是我对此使用了错误的方法?