jQuery Validator异步调用[重复]
Posted
技术标签:
【中文标题】jQuery Validator异步调用[重复]【英文标题】:jQuery Validator async call [duplicate] 【发布时间】:2018-09-05 14:48:10 【问题描述】:我正在尝试通过进行 ajax 调用来验证字段。然而,因为它是一个异步调用,所以它总是返回 false。我尝试添加超时但仍然没有运气。难道我做错了什么?我还尝试使用简单的检查来查看 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;
else
console.log("falsseeeee");
result = false;
);
setTimeout(function ()
return result;
, 100);
, "Please enter a valid supplier or 'MISC'");
【问题讨论】:
【参考方案1】:我认为您的“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'");
【讨论】:
我先试过了,但是没有用。我检查了论坛,它说尝试使用超时【参考方案2】:你的ajax调用是Aysnc,如果你想通过ajax调用以同步方式返回,你需要点击同步调用
理解这个函数并在你的 ajax 调用中实现逻辑
顺便说一句,您需要在 ajax 调用中更新的是 async : false
function syncMethod()
var returnValue= false;
$.ajax(
async: false,
url: "url",
success: function()
returnValue= true;
,error:function()
returnValue= false;
);
return returnValue;
【讨论】:
以上是关于jQuery Validator异步调用[重复]的主要内容,如果未能解决你的问题,请参考以下文章