Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery验证程序异步调用_Javascript_Jquery_Ajax_Validation - Fatal编程技术网

Javascript jQuery验证程序异步调用

Javascript jQuery验证程序异步调用,javascript,jquery,ajax,validation,Javascript,Jquery,Ajax,Validation,我试图通过一个ajax调用来验证一个字段。然而,因为它是一个异步调用,所以它总是返回false。我试图增加一个暂停时间,但还是没有成功。我做错什么了吗?我还尝试了一个简单的检查,看看ajax调用是否是问题所在,并且效果良好 $.validator.addMethod("validateSupplierCode" + currTabExt, function (value, element, params) { var result = false; ca

我试图通过一个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'");
我认为您的“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'");

您的ajax调用是Aysnc,如果您想以同步方式通过ajax调用返回,则需要点击sync调用

理解此函数并在ajax调用中实现逻辑 顺便说一句,在ajax调用中唯一需要更新的是
async:false

function syncMethod() {
    var returnValue= false;
    $.ajax({
    async: false,
    url: "url",
    success: function() {
         returnValue= true;
    },error:function(){
         returnValue= false;
    }});

    return returnValue;
}

我先试了一下,但没用。我查看了论坛,它说尝试使用超时