带有自定义规则远程验证的jQuery验证插件不工作

带有自定义规则远程验证的jQuery验证插件不工作,jquery,ajax,jquery-validate,Jquery,Ajax,Jquery Validate,我正在使用jQuery验证插件进行FuelUX向导表单验证。现在我需要用远程验证来验证几个字段。由于我的表单处于向导中,并且单击“下一步”按钮时需要进行验证,因此我添加了一个自定义验证规则,如下所示: $.validator.addMethod("validateRule", function(value, element) { var validator = this; $.ajax({ url: url,

我正在使用jQuery验证插件进行FuelUX向导表单验证。现在我需要用远程验证来验证几个字段。由于我的表单处于向导中,并且单击“下一步”按钮时需要进行验证,因此我添加了一个自定义验证规则,如下所示:

    $.validator.addMethod("validateRule", function(value, element) {

        var validator       = this;


        $.ajax({
            url: url,
            type:"POST",
            data: data,
        })
        .done(function(valid) {

            if (valid == "true") {
                return true;
            } else {
                var errors = {};
                errors[element.name] =  valid;
                validator.showErrors(errors);
                return false;
            }

        })},'’);
我的验证从以下位置调用:

    $('#create').validate({
        errorElement: 'div',
        errorClass: 'help-block',
        focusInvalid: true,
        rules: {
            field1: {
                required: true
            },
            title: {
                required: true,
                validateRule:true
            },
单击“下一步”按钮时,我正在检查显示的表单是否有效

    $('#fuelux-wizard').ace_wizard().on('change' , function(e, info){


        if (info.direction == 'next' && !$('#create').valid()) {
            return false;
        }
    }).on('finished', function(e) {
        $('#create').submit();
    }).on('stepclick', function(e){
        //return false;//prevent clicking on steps
    });

这里的问题是,当我检查$('#create').valid()时,不管我从服务器得到什么,它总是为false。我认为这不是等待ajax调用完成,而是等待代码的下一行。如何解决这个问题

您是否尝试将
async:false
添加到ajax请求中?实际上,我尝试在没有async:false的情况下添加它;为什么不使用远程规则…远程规则有完全相同的问题。我不会等待AJAX调用完成,并将重定向到WzardNobody中的步骤2。是否存在此问题?