【问题标题】:Return value from javascript function on the basis of Json function基于Json函数从javascript函数返回值
【发布时间】:2012-03-02 10:31:00
【问题描述】:

我的 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 Function ValidateValue 返回的基础上返回 truefalse

【问题讨论】:

    标签: javascript asp.net json validation


    【解决方案1】:

    请求是异步的,因此它会在设置之前返回值。所以我认为如果你改变async:false 会起作用。

    【讨论】:

      【解决方案2】:

      不可能从该调用所在的函数返回从异步调用中获得的值;您的函数将在异步调用返回之前结束。

      所以...使用回调:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        相关资源
        最近更新 更多