如何回应jQuery Validation remote?

时间:2013-11-18 05:19:06

标签: php jquery jquery-validate

看了多个SO问题和手册,但找不到它。当我有

$( "#myform" ).validate({ 
    rules: {
    email: {
      required: true,
      email: true,
      remote: "check-email.php"
    }
  }
});

我的check-email.php应如何回应?我已经尝试过echo "true"echo trueecho {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);
}

然而,它总是回归真实...

1 个答案:

答案 0 :(得分:0)

引用OP:

  

我的check-email.php应如何回应?我已经尝试了echo "true",   echo trueecho {error: true},但它没有给出正确的错误   消息。

那是因为true不会触发错误信息......这是相反的反应。

  • true是有效的响应(无错误消息)。

  • 如果回复为falsenullundefined或字符串(错误消息),则该字段将被评估为无效。

引用标题:

  

如何回应jQuery Validation远程?

You should read the documentation

  

通过jQuery.ajax(XMLHttpRequest)调用serverside资源   获取与已验证的名称对应的键/值对   元素及其作为GET参数的值。 响应评估为   对于有效的元素,JSON和必须为true,并且任何false,   使用默认消息的undefinednull 无效元素;要么   一个字符串,例如。 “这个名字已经被采用,请尝试peter123”   显示为错误消息。


修改

根据编辑和评论......

  • OP在他的PHP中使用$_POST['email']。但是,上述文档指出remote方法默认使用GET

  • 如果你想要一个自定义的错误信息,那么你需要按照上面的文档...所以在PHP中,而不是返回false ...构造消息并将其返回到字符串中