2011-03-27 177 views
2

我想驗證4個字段。最後兩個有驗證行爲正確,但前兩個不起作用。如果我什麼都不輸入 - 表單仍然會生效。jQuery驗證問題

這裏是jQuery的的方法:

jQuery.validator.addMethod("phoneUS", function(phone_number, element) { 
      phone_number = phone_number.replace(/\s+/g, ""); 
      return this.optional(element) || phone_number.length > 9 && 
      phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
     }, "Not a valid phone number"); 
     $("#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"/><br/><label for="advRetailerName" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Your Name</td><td><input type="text" id="advName" name="advName"/><br/><label for="advName" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Phone Number</td><td><input type="text" id="advPhone" name="advPhone"/><br/><label for="advPhone" class="error" generated="true"></label></td> 
</tr> 
<tr> 
    <td>Email Address</td><td><input type="text" id="advEmail" name="advEmail"/><br/><label for="advEmail" class="error" generated="true"></label></td> 
</tr> 
</table> 
    <input type="button" value="Submit" id="advSubmit"/> 
</form> 

我做了半打的形式就是這樣的完美,但我看不到爲什麼前兩個字段沒有遵循驗證規則存在問題。任何幫助?

+0

沒有什麼明顯的,jslint確認javascript是語法正常的 - 您使用的是哪個版本的jquery? – amelvin 2011-03-27 22:16:38

回答

0

我只簡單地使用了這個插件。根據我的記憶,你所要做的就是向你的輸入元素添加一個「required」類,以便驗證器檢查空字段。