2011-03-28 123 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(); 

然后添加必需的前两个

类或者你可能会只是做了验证线和添加类电子邮件和所需的最后两个