jQuery远程验证多个字段

时间:2013-01-16 08:47:25

标签: jquery jquery-validate remote-validation

我有一个包含两个字段用户ID和电子邮件ID的表单。我正在尝试验证每个字段的值是否已经采用或不使用相同的php文件与jQuery远程验证。

但我的困惑是我的情况应该是远程文件(validate.php)。它如何确定字段。

我的代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validationt</title>


<script type="text/javascript">
$(document).ready(function(){
   $("form").validate({
      rules: {
         userid: {
            required: true,
            remote: {
               url: "validate.php",
               type: "post",
             }
         }
          emailid: {
            required: true,
            remote: {
               url: "validate.php",
               type: "post",
             }
         }
      },
      messages: {
         userid: {
            remote: jQuery.validator.format("userid {0} is already taken")
     }
         emailid: {
            remote: jQuery.validator.format("emailid {0} is already taken")
     }
      }
   });
});
</script
</head>
<body>
<form method="post" id="form" action="">
<input id="userid" name="userid"  type="text" />
<input id="emailid" name="emailid" type="text" />
<input type="submit" name="submit" id="submit"/>
</form>
</body>
</html>

任何帮助?

3 个答案:

答案 0 :(得分:1)

像,

//validate.php

//get the post fields
$email_address = trim( $_POST["emailid"] );
//check if email exists against database, like
if( is_valid_from_db( $email_address ) ) {
  return TRUE;
}
else {
  return FALSE;
}

答案 1 :(得分:0)

我相信你已经查看了文档: http://docs.jquery.com/Plugins/Validation/Methods/remote#options

validate.php只需要执行它所说的验证字段。

这个问题可能会有所帮助: jQuery Remote validation

答案 2 :(得分:0)

我也在寻找使用远程方法验证多个字段的问题的答案。

要分别确定每个字段,您不必为每个字段定义远程方法。您可以为“emailid”字段定义远程方法,然后您可以使用数据选项在emailid旁发送'userid',如下所示。

            emailid: {
                required: true,
                remote: {
                   url: "validate.php",
                   type: "post",
                   data: {
                       userid: function() {
                       return $("#userid").val();
                      }
                   }
                 }
             }

所以你可以让你的js像这样

<script type="text/javascript">
   $(document).ready(function(){
   $("form").validate({
      rules: {
         userid: {
            required: true
         }
          emailid: {
            required: true,
            remote: {
               url: "validate.php",
               type: "post",
               data: {
                   userid: function() {
                   return $("#userid").val();
                  }
               }
             }
         }
      },
      messages: {
         userid: {
            remote: jQuery.validator.format("userid {0} is already taken")
     }
         emailid: {
            remote: jQuery.validator.format("emailid {0} is already taken")
     }
      }
   });
});
</script>

以上内容会将userid和emailid发布到您的validate.php,您可以在其中关注DemoUser的答案。但请确保返回值(true / false)是字符串值