我正在尝试使用jQuery验证来验证针对我们数据库的电子邮件输入字段,以查看电子邮件ID是否已存在。
输入字段如下所示。
<input name='email' id='id_email'/>
验证就像这样完成。我稍后会绑定remote
规则。
var validator = $('form').validate({
rules: { "email": {required:true,email:true} },
messages: { "email": {
required:'Please enter your email ID.',
email:'Please enter a valid email ID.',
remote: $.format('{0}')
}}
});
$('#id_email').rules('add', {
remote:{
url:'/validate/',
type:'post',
dataType:'text',
data:{'id_email':function() { return $('#id_email').val(); }}
}
});
现在,如果验证失败,服务器将回复错误消息(一些纯文本),如果验证通过则不会回复。
当验证失败时,我能够正确显示来自服务器的错误消息。但是,当输入有效的电子邮件ID并且服务器以空响应进行响应时,错误消息将显示输入字段的值。如何将此视为true
验证并且不显示任何错误消息?
答案 0 :(得分:0)
不幸的是the remote
method使用此插件的方式。如果从服务器返回true
,则该元素有效...如果服务器返回false
,null或undefined,则该元素将显示该消息,并且该元素被视为无效。
“...对于有效元素必须为true,对于无效元素可以是任何false,undefined或null”
也许您可以编写自己的自定义remote
方法...只需确保该方法为您的特定响应返回true
。
jQuery.validator.addMethod("customRemote", function(value, element, params) {
// your ajax;
// if server response is something good, then return true
// if server response is not so good, then return false and error message displays
}, "This is the error message");