jQuery Validate插件,自定义规则远程验证不起作用

时间:2015-07-09 06:04:00

标签: jquery ajax jquery-validate

我正在使用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()时,无论我从服务器获取什么,它总是假的。我认为它不是在等待ajax调用完成并转移到代码的下一行。如何解决这个问题?

0 个答案:

没有答案