【问题标题】:Parsley Validation not waiting for Remote Validation AsyncValidate to finishParsley 验证不等待远程验证 AsyncValidate 完成
【发布时间】:2016-05-12 19:21:54
【问题描述】:

我有一个表单,我正在尝试对其中一个字段进行欧芹远程验证,但是,在表单验证中,表单在等待来自远程函数的响应之前提交(通过 asyncValidate())。因此,即使该字段无效,它也会显示字段错误 css 但表单仍然提交。

我尝试使用 $.Deferrede 对象,但这不起作用。

function add_remote_validation() {

    var form = card.el.find('form');

    $(form).parsley().addAsyncValidator('validate_function', function (xhr) {

        return parseInt(xhr.responseText);
    });
}

add_remote_validation();

card.cards['my_card1'].on('validate', function(card){

    add_remote_validation();

    var result = $.Deferred();

    // test any asyncronous validation before doing regular validation
    $(form).parsley().asyncValidate()
        .done(function(){

            var valid = $(form).parsley().validate();

            if(valid) {

                result.resolveWith(valid);
            } else {

                result.rejectWith(valid);
            }
        })
        .fail(function(){

            result.rejectWith(false);
        });
});

【问题讨论】:

    标签: jquery validation parsley.js remote-validation parsley


    【解决方案1】:

    很难判断您是否需要addAsynchValidator(您的代码返回一个整数,它应该返回truefalse)。如果你这样做了,你应该打电话给window.Parsley.addAsyncValidator(正如你在警告中所说的那样)。其余的代码应该不需要了。

    我假设您使用的是最新版本。

    【讨论】:

    • 你说得对,我没有使用最新版本...我在我的控制器(MVC 结构)中使用了一种解决方法,这样我就不会尝试通过 jQuery 进行验证。尽管如此,我会将此答案标记为正确。
    猜你喜欢
    • 2013-10-17
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多