jQuery验证框架(七)注意事项 (jQuery validation)

jQuery验证框架

7、注意事项

[1]复杂的name属性值
    当使用rules选项时,若是表单的name属性值包含有非法的javascript标识符,必须将name值加上引号。javascript

Js代码
  1. $("#myform").validate({  
  2.   rules: {  
  3.     // no quoting necessary  
  4.     name: "required",  
  5.     // quoting necessary!  
  6.     "user[email]""email",  
  7.     // dots need quoting, too!  
  8.     "user.address.street""required"  
  9.   }  
  10. });  



[2]重构规则
    不论何时,当你的表单中的多个字段含有相同的验证规则及验证消息,重构规则能够减小不少重复。使用 addMethodaddClassRules 将很是有效果。  
    假使已经重构了以下规则:html

Js代码
  1. // alias required to cRequired with new message  
  2. $.validator.addMethod("cRequired", $.validator.methods.required,  
  3.   "Customer name required");  
  4. // alias minlength, too  
  5. $.validator.addMethod("cMinlength", $.validator.methods.minlength,   
  6.   // leverage parameter replacement for minlength, {0} gets replaced with 2  
  7.   $.format("Customer name must have at least {0} characters"));  
  8. // combine them both, including the parameter for minlength  
  9. $.validator.addClassRules("customer", { cRequired: true, cMinlength: 2 });  


    那么使用的时候以下:java

Html代码
  1. <input name="customer1" class="customer" />  
  2. <input name="customer2" class="customer" />  
  3. <input name="customer3" class="customer" />  



[3]验证消息
    当验证了一个无效的表单元素,验证消息显示在用户面前。这些消息是从哪里来的呢?有三个途径来取得验证消息。
        1.经过待验证表单元素的title属性
        2.经过默认的验证消息
        3.经过插件设置(messages选项)

    这三种途径的优先顺序为:3 > 1 > 2
   
[4]验证消息与Google工具栏的冲突
    有时候验证消息会与Goole工具栏的AutoFill插件冲突。AutoFill经过替换表单元素的title属性,以显示提示消息。此时,验证消息若是获取的是title属性值,那么就得不到咱们预期想要获得的结果。当文档载入时,能够经过以下方法避免冲突。框架

Js代码
  1. $("input.remove_title").attr("title""");  



[5]表单提交
    默认地,表单验证失败时阻止表单的提交,当验证经过,表单提交。固然,也能够经过submitHandler来自定义提交事件。
    将提交按钮的class属性设置成cancel,在表单提交时能够跳过验证。工具

Js代码
  1. <input type="submit" name="submit" value="Submit" />  
  2. <input type="submit" class="cancel" name="cancel" value="Cancel" />  


    下面这段代码将循环提交表单:ui

Java代码
  1. $("#myform").validate({  
  2.  submitHandler: function(form) {  
  3.    // some other code maybe disabling submit button  
  4.    // then:  
  5.    $(form).submit();  
  6.  }  
  7. });  


    $(form).submit() 触发了另一轮的验证,验证后又去调用submitHandler,而后就循环了。能够用 form.submit() 来触发原生的表单提交事件。spa

Java代码
  1. $("#myform").validate({  
  2.  submitHandler: function(form) {  
  3.    form.submit();  
  4.  }  
  5. }); 
相关文章
相关标签/搜索