Javascript jQuery验证程序异步调用
我试图通过一个ajax调用来验证一个字段。然而,因为它是一个异步调用,所以它总是返回false。我试图增加一个暂停时间,但还是没有成功。我做错什么了吗?我还尝试了一个简单的检查,看看ajax调用是否是问题所在,并且效果良好Javascript jQuery验证程序异步调用,javascript,jquery,ajax,validation,Javascript,Jquery,Ajax,Validation,我试图通过一个ajax调用来验证一个字段。然而,因为它是一个异步调用,所以它总是返回false。我试图增加一个暂停时间,但还是没有成功。我做错什么了吗?我还尝试了一个简单的检查,看看ajax调用是否是问题所在,并且效果良好 $.validator.addMethod("validateSupplierCode" + currTabExt, function (value, element, params) { var result = false; ca
$.validator.addMethod("validateSupplierCode" + currTabExt, function (value, element, params) {
var result = false;
callAjax('Supplier/ValidateSupplier?Code=' + value, 'GET', "", function success(data) {
if (data.isValid) {
console.log("trueee");
result = true;
} else {
console.log("falsseeeee");
result = false;
}
});
setTimeout(function () {
return result;
}, 100);
}, "Please enter a valid supplier or 'MISC'");
我认为您的“return”语句应该在AJAX调用的回调函数中。大概是这样的:
$.validator.addMethod("validateSupplierCode" + currTabExt, function (value, element, params) {
var result = false;
callAjax('Supplier/ValidateSupplier?Code=' + value, 'GET', "", function success(data) {
if (data.isValid) {
console.log("trueee");
result = true;
return result;
} else {
console.log("falsseeeee");
result = false;
return result;
}
});
}, "Please enter a valid supplier or 'MISC'");
您的ajax调用是Aysnc,如果您想以同步方式通过ajax调用返回,则需要点击sync调用 理解此函数并在ajax调用中实现逻辑 顺便说一句,在ajax调用中唯一需要更新的是
async:false
function syncMethod() {
var returnValue= false;
$.ajax({
async: false,
url: "url",
success: function() {
returnValue= true;
},error:function(){
returnValue= false;
}});
return returnValue;
}
我先试了一下,但没用。我查看了论坛,它说尝试使用超时