2013-01-16 101 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的答案。但請確保返回的值(真/假)是字符串值