【发布时间】:2014-01-09 20:09:54
【问题描述】:
我需要使用 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;
});
}
}
},
但是不起作用,我也没有找到可以添加远程验证错误消息的地方,我想将数组电子邮件值作为消息传递...
【问题讨论】:
-
究竟是什么不起作用?
-
更改'email':function(){ $('#email').val(); } 到 'email': $('#email').val()
-
我尝试在成功函数上添加 return false 或 return true 以查看它是否有任何不同但没有...
-
我建议你阅读the
remotemethod。它并不像你做的那么复杂。true和false应该来自您的服务器。如果你不能这样做,那么你就不能使用remote方法。考虑使用addMethod编写您自己的远程规则。
标签: javascript jquery yii jquery-validate