使用自定义远程验证器,您应该如何摆脱错误消息?
在字段上使用data-parsley-remote-validator ='mycustom'将在控制台'undefined async validator'中出现错误,除非在DOM准备好的情况下添加验证器,而不是在另一个函数内。但是,如果在DOM准备就绪时添加它,那么欧芹会自动调用它,直到提交/更改或您设置的任何其他内容都不会发生。
我可以做这样的事情,但它有点打败了欧芹在改变时调用验证器的目标:
$('#signUpForm').on('submit', function() {
//add the attribute here to avoid the initial error message
$('#exampleInputEmail1').attr('data-parsley-remote-validator', 'validateEmail');
//then add the custom validator
$('#exampleInputEmail1').parsley()
.addAsyncValidator('validateEmail', function (xhr) {
if(xhr.status == '200') {
return 200;
}
// return the error message if email is taken
else if(xhr.status == '404') {
response = '<ul class="errorlist"><li>That email has already been taken, please try another</li></ul>'
$('#errorResponse').html(response);
}
}, '/api/v1/email/available', { "type": "POST", "dataType": "json", "data": data }
);
});
答案 0 :(得分:2)
对于那些来自Parsley.js的自定义远程验证器错误消息的人,
您可以将data-parsley-remote-message
添加到元素
<input type="text" data-parsley-remote-validator="my_remote_validator" data-parsley-remote-message="Custom error message only for remote validation on this element" >
使用 Parsley.js - 版本2.3.11
进行测试答案 1 :(得分:1)
您的异步验证器本身不应设置错误消息,如果值有效,则应该返回。错误消息使用不同的API添加和/或指定为数据属性,请查看doc。