2013-01-16 70 views
0

我有一个带有两个字段用户ID和电子邮件ID的表单。我试图验证每个字段的值是否已经采用或不使用相同的php文件进行jQuery远程验证。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> 

任何帮助吗?

回答

0

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

validate.php只是需要做什么它说验证领域。

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

+0

您的重播也是关于单个字段验证,实际上我知道该怎么做。但我的问题是我想使用相同的远程文件(在我的例子中是validate.php)对多个字段进行远程验证。在我上面的代码中,我使用两个字段验证相同的php文件在这种情况下,需要进行什么样的修改以便将文件validate.php分别确定为每个字段 – klari

+0

其与服务器端相同 - 您可以从帖子中的字段验证它们然后返回一些东西 - 在这种情况下,输出需要是json或html。 – matpol

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; 
} 
+0

其实我知道如何为单个字段进行远程验证。但我的问题是我想使用相同的远程文件(在我的例子中是validate.php)对多个字段进行远程验证。在这种情况下,需要进行哪些修改才能将validate.php文件分开确定每个字段。 – klari

+0

@klari,你可以使URL如下:validate.php?check_for = emailid,然后在你的validate.php文件中检查“check_for”数据并根据$ _GET中设置的值对emailid和userid执行验证[ “check_for”] ..希望工程 –

0

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

要分别确定每个字段,您不必为每个字段定义远程方法。虽然您可以为'emailid'字段定义远程方法,但您可以按照以下方式使用数据选项发送'userid'旁边的emailid。

  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> 

以上将发布用户名和EMAILID您validate.php在那里你可以按照DemoUser的答案。但请确保返回的值(真/假)是字符串值