基于Json函数从javascript函数返回值

时间:2012-03-02 10:31:00

标签: javascript asp.net json validation

我有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返回的内容返回falseValidateValue

2 个答案:

答案 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);
}