我正在使用jQuery Validator插件来验证简报表单注册。 在文档和其他帖子之后,我使用远程验证方法来检查数据库中是否已存在电子邮件。
该方法有效。如果我输入现有地址,将显示远程消息,我将无法发送表单。 但是,如果我将电子邮件地址更改为不存在的电子邮件地址,则不会删除远程邮件,我将无法发送该表单。
我错过了什么吗?
这是我的jQuery:
$("#form").validate({
rules: {
email: {
required: true,
email: true,
remote: {
url: ajaxurl,
data: {
action: 'my_action'
},
type: "post"
}
}
},
messages: {
email: {
required: "This field is required.",
email: "Please enter a valid email address.",
remote: "This Email address is already in use."
}
},
});
这是我的ajax函数(wordpress):
function my_action(){
if ( !empty( $_POST['email'] ) ) {
$emailArray = get_meta_values( 'email', 'my_post_type' );
if (in_array( $emailArray, $_POST['email'] ) ) {
echo "notexist";
}
else {
echo 'exist';
}
}
}
答案 0 :(得分:1)
来自文档(this reference)
服务器端响应必须是JSON字符串,对于有效元素必须为“true”,对于无效元素可以是“false”,未定义或null,使用默认错误消息
您的PHP返回字符串“exists”和“notexist”而不是false / true(分别)。我认为你需要返回验证器可以理解的值。