Javascript jQuery.Validate()远程成功函数和消息

Javascript jQuery.Validate()远程成功函数和消息,javascript,jquery,yii,jquery-validate,Javascript,Jquery,Yii,Jquery Validate,我需要使用jQuery.validate()插件验证电子邮件字段。它有一个“远程”方法,我们必须将该方法发布到服务器,服务器需要返回true或false,而不是使用传统方法(在服务器上添加一个函数以返回true或false),我需要从服务器获得json响应,成功后运行一个函数来决定在哪里返回true或false 下面是来自服务器的响应(我使用的是yiiajax表单验证) 如果阵列上列出了电子邮件,则表示验证有错误,因此我创建了一个远程验证规则,如下所示: 'email': {

我需要使用jQuery.validate()插件验证电子邮件字段。它有一个“远程”方法,我们必须将该方法发布到服务器,服务器需要返回true或false,而不是使用传统方法(在服务器上添加一个函数以返回true或false),我需要从服务器获得json响应,成功后运行一个函数来决定在哪里返回true或false

下面是来自服务器的响应(我使用的是yiiajax表单验证)

如果阵列上列出了电子邮件,则表示验证有错误,因此我创建了一个远程验证规则,如下所示:

    '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"}