我需要使用jQuery.Validate()插件验证电子邮件字段,它有一个“远程”方法,我们必须将其发布到服务器,服务器需要返回true或false,而不是使用传统方式(添加一个函数在服务器上返回true或false),我需要从服务器获取json响应并在成功时运行一个函数来决定返回true或false的位置......
以下是来自服务器的响应(我正在使用Yii ajax表单验证)
{
"zipcode":[
"Zipcode cannot be blank."
],
"email":[
"Email is already registered"
],
}
如果数组中列出的电子邮件意味着验证有错误那么我创建了一个远程验证规则,如下所示:
'email': {
required: true,
email: true,
remote:{
type:"POST",
url:url,
dataType:'json',
data:{'email':function(){
$('#email').val();
},ajax:'validate'},
success:function(resp){
$.each(resp,function(index,value){
if(index == "email")
return false;
});
}
}
},
但是不起作用,我也没有找到任何可以添加错误消息进行远程验证的地方,我想将数组电子邮件值作为消息传递...
答案 0 :(得分:0)
您需要使用以下功能替换您的成功功能:
dataFilter: function (data) {
return 'false'; //Email not exist
return 'true'; //Email already exist
}
请将true / false值作为字符串传递。
显示消息:
remote:{......},
messages:{email:'Please enter valid email', remote : "{0} is already exist"}
我认为这会有所帮助。