2011-03-28 122 views
0

我試圖驗證四個不同的領域。最後兩個有驗證行爲正確,但前兩個不起作用(他們應該只需要)。如果我按提交而不輸入任何內容,則只有最後兩個字段顯示錯誤。jQuery驗證工作不正常

這裏的jQuery的問題:

 $("#advertisePost").validate({ 
      rules: { 
       advRetailerName: { 
        required: true 
       }, 
       advName: { 
        required: true 
       }, 
       advPhone: { 
        required: true, 
        phoneUS: true 
       }, 
       advEmail: { 
        required: true, 
        email: true 
       }   
      }, 
      messages:{ 
       advRetailerName: { 
        required: "This is required." 
       }, 
       advName: { 
        required: "This is required." 
       }, 
       advPhone: { 
        required: "This is required.", 
        phoneUS: "This is an invalid phone number." 
       }, 
       advEmail: { 
        required: "This is required", 
        email: "This is an invalid email" 
       } 
      } 
     }); 

這裏的實際形式本身:

<form action="php/advertisePost.php" method="POST" id="advertisePost"> 
<table> 
<tr> 
    <td>Retailer Name</td><td><input type="text" id="advRetailerName" name="advRetailerName" class="required"/><br/><label for="advRetailerName" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Your Name</td><td><input type="text" id="advName" name="advName" class="required"/><br/><label for="advName" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Phone Number</td><td><input type="text" id="advPhone" name="advPhone" class="required"/><br/><label for="advPhone" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Email Address</td><td><input type="text" id="advEmail" name="advEmail" class="required"/><br/><label for="advEmail" class="error" generated="true"></label></td> 
</tr> 
</table> 
    <input type="button" value="Submit" id="advSubmit"/> 
</form> 

我甚至嘗試添加所需類的每個字段。我知道這不是一個消息處理問題。前兩個字段根本不符合驗證規則。任何幫助?

回答

0

如果你只是想驗證前兩個字段是必需的,那麼你可以在各自的輸入欄設置一個類=「需要」,並設置advRetailerName:在您的jQuery的「需要」。下面是驗證文檔:http://docs.jquery.com/Plugins/Validation

+0

下面是驗證的演示:http://jquery.bassistance.de/validate/demo/ – Notorious2tall 2011-03-28 16:20:26

0

好像在驗證插件的錯誤。當您只請求「必需」參數時,可能它不理解複雜樣式的規則分配?你試過簡單的方法:

rules: { 
    advRetailerName: "required", 
    (...) 
} 
1

嘗試這樣

$.validator.addClassRules({ 
     advPhone: { 
      required: true, 
      phoneUS: true 
     }, 
     advEmail: { 
      required: true, 
      email: true 
     } 
}); 

$("#advertisePost").validate(); 

然後添加必需的前兩個

類或者你可能會只是做了驗證線和添加類電子郵件和所需的最後兩個