2016-01-22 64 views
1

我已经继承了一些使用Parsley JS验证的代码,并且我需要设置远程电子邮件检查规则。这是一个两步骤的形式,在成功验证电子邮件部分后,表单的第二部分通过css显示。如何让Parsley远程验证程序等待响应?

我已加入下列属性表单元素;

data-parsley-remote="/members/members_email_check" 
data-parsley-remote-message="This email address is already registered" 

现有的表单验证调用如下所示;

$('.reg-step-next').on('click touchstart', function (e) { 
    e.preventDefault(); 
    if ($('form.register-form').parsley().validate($('.reg-step.active').data('parsley-group'))) { 
     $(this).parents('.reg-step').removeClass('active').next('.reg-step').addClass('active'); 
    } 
}); 

服务器电子邮件检查工作正常 - 拨打电话并按预期返回200/40x代码。

我的问题是验证()调用不是正在等待来自远程验证的响应并立即返回null(指示远程验证是在过程中,我认为),从未​​进行到下一步骤。

我知道异步范例导致我的问题在这里,但看不到如何设置回调远程验证。当然,我可以创建自己的异步调用香菜之外,但后来我错过了其它香菜利益,必须做一些额外的工作注入错误信息等

回答

0

相反的validate,使用whenValidate ...

这将返回一个承诺,因此您可以在表单解析后显示表单的第二部分。

PS:一定要升级到版本2.2.0