2016-04-25 138 views
0

我使用jQuery Validate插件来检查网站上的表单。下面是检查验证不检查规则

<form id ="formCharacteristics" align="center"> 
    <dl> 
     <dt style="text-align:left; margin-left:120px;"><label for="cpuname">CPU name</label></dt> 
     <dd><input type="text" id="cpuname" placeholder="Intel 8086"></dd>     
    <div align="right" style="margin-right:30px"> 
     <button id="buttonSubmitCharacteristics" type="button" onclick = "AddCPU()" >Done</button> 
     <button type="button" onclick="HideMessage()">Back</button> 
    </div> 
</form> 

我的一块HTML表单的下面是一段JavaScript代码,它调用验证阿贾克斯发布

AddCPU(){ 
    var form = $('#formCharacteristics'); 
    if(!form.valid()) 
     return; 
    var CPUname = $('input #cpuname'); 
    .... 
} 

验证正常工作,其他形式之前,但这种形式不检查任何规则。我不使用相同的表单ID和输入ID。
这里是specifing规则

$(document).ready(function() { 
$('#formCharacteristics').validate({ 
    rules:{ 
     cpuname: { 
      required: true, 
      maxlength: 30, 
      minlength: 4 
      } 
     } 
    }); 
...... 

)}; 
+0

其中代码指定int为'cpuname'结束验证?据我所知,表单是有效的,因为没有规则应用于'cpuname' –

+0

除非先前调用'form.validate()'来指定规则和其他验证选项。验证插件要求元素具有名称,而不仅仅是ID。 – Barmar

+0

@Barmar,*“我使用验证插件”* - 基于代码,甚至不清楚他在说哪个插件,所以我不确定为什么用[tag:jquery-validate]标记它。 – Sparky

回答

3

你的代码代码:

$('#formCharacteristics').validate({ 
    rules: { 
     cpuname: { // <- this is the NAME attribute 
      required: true, 
      maxlength: 30, 
      .... 

对于jQuery验证插件才能正常工作,您input必须包含相同name作为rules对象中指定。 ..

<input type="text" name="cpuname" id="cpuname" .... 
+0

谢谢,你救了我的一天。 – MasterUZ