jQuery远程验证检查ajax响应

时间:2016-11-12 02:38:41

标签: jquery ajax jquery-validate

我有一个表格,可以在注册时检查电子邮件是否存在。我的服务器响应状态为true/false

{'status': true/false}

如果电子邮件存在,则返回false,表示新用户无法使用该电子邮件注册。如果它返回true,则用户可以自由地接收邮件。

如何根据状态键字段显示错误。??

这是我的代码: -

rules: {
    user_email: {
        required: true,
        email: true,
        remote: {
            url: "/check_email_exist/",
            type: "post",
            data: {
                email: function() {
                    return $( "#signup_form :input[name='user_email']" ).val();
                }
            },
            success: function(response) {
                    if (response['status'] == true){
                        alert(111)  // does alert
                        messages:{  // but does not prints the message.
                            user_email: {
                                remote: jQuery.validator.format("Email {0} does not exists. Kindly check the mail.")
                            }
                        }
                    }
                }
        }
    }
}

PS: - 我知道我可以直接从服务器发送true/false,即只是布尔响应,而不是字典。但事情是反应可以是任何事情,而不是像true/false那样专门针对这种情况。

我尝试添加addMethod,但check_mail始终为假。

rules: {
        email: {
            required: true,
            email: true,
            check_email: true
        }
    },
$.validator.addMethod("check_email", function (value, element) {
    $.ajax({
        type:'post',
        url:'/check_email_exist/',
        data: {'email' : value},
        success:function(result)
        {   
            if(result == 'false'){
                return false
            }
            return true
        }
    })
},jQuery.validator.format("Email does not exists. Kindly check the mail."));

0 个答案:

没有答案