【问题标题】:jQuery Validator async call [duplicate]jQuery Validator异步调用[重复]
【发布时间】: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'");

【问题讨论】:

    标签: javascript jquery ajax validation


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 2014-06-26
      • 2022-07-25
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      相关资源
      最近更新 更多