看了多个SO问题和手册,但找不到它。当我有
$( "#myform" ).validate({
rules: {
email: {
required: true,
email: true,
remote: "check-email.php"
}
}
});
我的check-email.php
应如何回应?我已经尝试过echo "true"
,echo true
,echo {error: true}
,但它没有给出正确的错误消息。
修改
我目前将我的php设置为:
$query = mysql_query("SELECT id FROM users WHERE email='".$_POST['email']."'") or die (mysql_error());
if(mysql_num_rows($query)!=0){
echo json_encode(false);
}else{
echo json_encode(true);
}
然而,它总是回归真实...
答案 0 :(得分:0)
引用OP:
我的
check-email.php
应如何回应?我已经尝试了echo "true"
,echo true
,echo {error: true}
,但它没有给出正确的错误 消息。
那是因为true
不会触发错误信息......这是相反的反应。
true
是有效的响应(无错误消息)。
如果回复为false
,null
,undefined
或字符串(错误消息),则该字段将被评估为无效。
引用标题:
如何回应jQuery Validation远程?
You should read the documentation:
通过jQuery.ajax(XMLHttpRequest)调用serverside资源 获取与已验证的名称对应的键/值对 元素及其作为GET参数的值。 响应评估为 对于有效的元素,JSON和必须为
true
,并且任何false
, 使用默认消息的undefined
或null
无效元素;要么 一个字符串,例如。 “这个名字已经被采用,请尝试peter123” 显示为错误消息。
修改强>:
根据编辑和评论......
OP在他的PHP中使用$_POST['email']
。但是,上述文档指出remote
方法默认使用GET
。
如果你想要一个自定义的错误信息,那么你需要按照上面的文档...所以在PHP中,而不是返回false
...构造消息并将其返回到字符串中