2012-01-02 125 views
0

我想添加类规则,但似乎没有正常工作。jquery验证器 - addClassRules

在提交表单时,它仅验证第一个文本框,而第二个文本框的onblur则显示错误。

$.validator.addClassRules({ 
    contactvalues: { 
     minlength: 10 
    }, 
    email: { 
     email: true 
    } 
}); 
$("#extracontacts").validate(); 

其中#extracontacts是FORM的ID。

这是(摘要)形式的HTML:

<form id="extracontacts" action="/toolbox/contact/manage/save" method="post"> 
    <input type="text" id="contacts_value_1" value="[email protected]" name="contacts_value[]" class="contactvalues email valid"> 
    <input type="text" id="contacts_value_2" value="testing" name="contacts_value[]" class="contactvalues email">   
</form> 

另外,如果我的document.ready修改后的输入类(),我不得不召回$("#extracontacts").validate();

+0

? – 2012-01-02 23:16:44

+0

@AndreaTurri使用PHP,它有什么区别? :s – hex4 2012-01-03 17:10:37

+0

是的,asp.net以不同的方式呈现ID。我的代码显示了如何获取该ID。如果你使用php不是问题。 – 2012-01-03 21:17:27

回答

0

试试这个方法,你还需要一个输入提交表单(我提交输入ID将只是“sumbit_form”):

function InitValidations() { 

    function setContactsRules() { 

     $('#contacts_value_1').rules('add', { 
      required: true, 
      email: true, 
      messages: { 
       required: 'please type your email', 
       email: 'please type a valid email' 
      } 
     }); 

     $('#contacts_value_2').rules('add', { 
      required: true, 
      messages: { 
       required: 'please type something' 
      } 
     }); 

    $('#submit_form').click(function (event) { 

     var isValid = $("#extracontacts").validate(); 

     setContactsRules(); 

     if (!isValid) { 
      event.preventDefault(); 
     } 

    }); 

} 

$(document).ready(function() { 

    InitValidations(); 

}); 

希望它能帮助。问候。

+0

关于SO的答案预计会针对这个问题,而不是OP必须修改以适应他的需求的其他代码。 – Sparky 2012-01-03 00:29:00

+0

这是一个有效的例子。只需比较步骤。 – 2012-01-03 21:18:27

+0

我没有说这是一个无效的例子。我说它并没有特别回答这个问题。只需重新格式化它,以便它完全回答他的问题,而且没有人需要比较任何步骤。 – Sparky 2012-01-03 21:29:18

0

试试您使用PHP或asp.net做你的验证这样

$(function(){ 
$("#extracontacts").validate({ 
rules: { 
    name: { 
    required: true, 
    minlength: 3, 
    maxlength: 50, 
},  


messages: { 
    name: { 
     required: "Your name is Required input", 
     minlength: "The Postman demands at least {3} characters", 
     maxlength: "Please, no more than {50} characters" 
    }, 
}); 
}); 
+0

使用该名称的问题是,输入验证的名称有括号'[]'在你的情况是无效的,但无论如何,我不能使用名称因为我将通过javascript删除/添加/更改输入及其验证...所以最好使用类 – hex4 2012-01-03 17:33:29

+0

这些名称只是一个示例,它并未针对您的特定文本进行配置。重点是在同一个脚本中验证并添加规则 – Brad 2012-01-05 16:45:58