我想验证使用jQuery ajax和php的字段。只执行最后一个Ajax请求
当我开始录入多于3个字符时,它将请求发送到php文件,但是我的问题是当我点击3个有效字符并且第4个无效时,我必须等待执行请求4次。
我想只执行最后一个请求,并杀死其他挂起的请求
我想:
xhr = $.ajax(//...);
xhr.abort();
和
if(typeof xhr !== 'undefined')
xhr.abort();
xhr = $.ajax(//...);
,但它不工作
这是我的代码:
// Check validation errors
var minLength = 3;
$('input[name^="data"][type=text]').on('keyup', function(){
var input = $(this);
var value = $.trim(input.val());
var url = input.data('url');
var div = input.parent();
var serialized = input.serialize();
if(value.length >= minLength){
$.ajax({
type: 'POST',
url: url+'.json',
data: serialized,
dataType: 'json',
success: function(data){
var error = data.error;
if(error){
div.removeClass('valid').addClass('invalid');
}else{
div.removeClass('invalid').addClass('valid');
}
}
});
}
});
+1
看看[this throttle/debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/)插件来自Ben Alman –
2013-02-12 20:50:06