我的要求很简单,但仍然无法解决,我的代码有什么问题。 我有验证功能,从服务器获取数据。我想确保它应该等到ajax请求完成。请建议使用哪种延期功能。
// Validate function is defined under variable.....
validate : function (field){
field.valid = false;
// accessSer is a common object where AJAX request defined
accessSer.request("checkDuplicate", field.value, function(response){
if(response.success == true){
field.valid = true;
}
});
}
//i tried below deferred function $.when to call validate function.
$.when(opts.validate(this)).then( function(){
console.log(this.valid); // always have undefined
});
console.log(field.valid); // always have false.
答案 0 :(得分:0)
您需要从验证功能返回accessSer.request(...)
结果。尝试这样的事情:
validate: function (field) {
field.valid = false;
return accessSer.request("checkDuplicate", field.value, function (response) {
return field.valid = (response.success == true);
});
}
opts.validate(this).then(function (valid) {
console.log(valid);
console.log(field.valid);
});