Javascript jQuery.Validate()远程成功函数和消息
我需要使用jQuery.validate()插件验证电子邮件字段。它有一个“远程”方法,我们必须将该方法发布到服务器,服务器需要返回true或false,而不是使用传统方法(在服务器上添加一个函数以返回true或false),我需要从服务器获得json响应,成功后运行一个函数来决定在哪里返回true或false 下面是来自服务器的响应(我使用的是yiiajax表单验证) 如果阵列上列出了电子邮件,则表示验证有错误,因此我创建了一个远程验证规则,如下所示:Javascript jQuery.Validate()远程成功函数和消息,javascript,jquery,yii,jquery-validate,Javascript,Jquery,Yii,Jquery Validate,我需要使用jQuery.validate()插件验证电子邮件字段。它有一个“远程”方法,我们必须将该方法发布到服务器,服务器需要返回true或false,而不是使用传统方法(在服务器上添加一个函数以返回true或false),我需要从服务器获得json响应,成功后运行一个函数来决定在哪里返回true或false 下面是来自服务器的响应(我使用的是yiiajax表单验证) 如果阵列上列出了电子邮件,则表示验证有错误,因此我创建了一个远程验证规则,如下所示: 'email': {
'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;
});
}
}
},
但不起作用,我也没有找到任何地方可以添加错误消息进行远程验证,我想将数组电子邮件值作为消息传递…您需要将成功函数替换为以下函数:
dataFilter: function (data) {
return 'false'; //Email not exist
return 'true'; //Email already exist
}
请以字符串形式传递真/假值
对于显示消息:
remote:{......},
messages:{email:'Please enter valid email', remote : "{0} is already exist"}
我想这会有帮助。什么东西不起作用?将'email':function(){$('email').val()}改为'email':$('email')。val()我试过了,但读过这篇文章后,我尝试在成功函数中添加return false或return true,看看是否有什么不同,但我建议你继续阅读。它不像你做的那么复杂。
true
和false
应该来自您的服务器。如果不能这样做,则不能使用remote
方法。考虑使用addMethod
编写自己的远程规则。
remote:{......},
messages:{email:'Please enter valid email', remote : "{0} is already exist"}