Parsley 2.0远程未提交时触发

时间:2014-03-17 14:41:16

标签: jquery validation parsley.js

我使用远程验证进行用户注册以检查已经使用的电子邮件,它在更改时正常工作,但在提交时不会触发验证。因此,如果用户输入已经使用的电子邮件,他将收到错误消息,但是当他提交请求时忽略错误并执行ajax调用。

这是我的电子邮件输入:

<div id="userPanel">
     ...
     <input id="emailInput" class="form-control" type="text" name="email" data-parsley-type="email" data-parsley-required="true" data-parsley-trigger="change" data-parsley-remote="@Url.Action("CheckIsEmailUnique", "Onboarding")" data-parsley-remote-message="Email must be unique."/>
     ...
</div>

使用Javascript:

var parsleyForm = $('#userPanel').parsley();
$("#saveNewUser").click(function () {
        var isValid = parsleyForm.validate();
        if (isValid) {
               ...
               ajaxCall(...);
        }
}

1 个答案:

答案 0 :(得分:2)

当您使用Parsley.remote.js时,可以使用两种新方法:asyncValidate()asyncIsValid()返回promises。

Parsley.remote.js在asyncValidate()个事件和表单提交时自动绑定data-parsley-trigger

如果您想通过javascript在表单提交上手动控制欧芹,请使用:

var parsleyForm = $('#userPanel').parsley();
$("#saveNewUser").click(function () {
    parsleyForm.asyncValidate()
      .done(function () { console.log('success'); })
      .fail(function () { console.log('there is an error'); })
      .always(function () { console.log('done everytime whatever happens'); });
}