我有JS代码如下所示:
function ValidateBid(source, args) {
var txtValue = $('#txtBid').val();
$.ajax({
type: "POST",
async: true,
url: "BidDetail.aspx/ValidateValue",
contentType: "application/json; charset=utf-8",
data: "{value:" + JSON.stringify(txtValue) + "}",
dataType: "json",
success: function (msg) {
var resultAsJson = msg.d // your return result is JS array
args.IsValid = msg.d;
// Now you can loop over the array to get each object
}
});
return args.IsValid;
}
这里发生的是,它首先返回args.IsValid,然后进入方法args.IsValid。我使用了CustomValidator
,我在ClientValidationFunction
上调用了这个函数。
我想要的是,我想根据Json函数true
返回的内容返回false
或ValidateValue
。
答案 0 :(得分:0)
请求是异步的,因此它会在设置之前返回值。所以我认为如果你改变async:false
将会有用。
答案 1 :(得分:0)
无法从该呼叫所在的函数返回异步调用所获得的值;你的函数将在异步调用返回之前结束。
所以...使用回调:
function callback(result) {
// do womething with that result
}
function ValidateBid(source, args, callback) {
// do ajax stuff
// when you get the result from your ajax call do:
callback(result);
}