zoukankan      html  css  js  c++  java
  • jquery validate验证规则重用

    当多个控件验证规则相同时,如何避免冗余代码并应用相同规则呢?

    【1st way. addMethod+addClassRules】

    场景:维护学生档案时需要维护父母、监护人、紧急联系人的身份证号码,此时页面4个input都需要身份证号码验证;

    解决:

    [1].在四个input的class上增加idcard;

    [2].定义验证规则idCard,对样式为idcard的控件附加身份证验证;

    $.validator.addMethod("idCard", $.validator.methods.card, "身份证号不正确");
    $.validator.addClassRules("idcard", {idCard : true});


    参考自动动我试试

    Whenever you have multiple fields with the same rules and messages, refactoring those can reduce a lot of duplication. Using addMethod and addClassRules are most effective for that.

    Let's consider an example where you have ten customer fields, each required and with a minlength of 2. You need custom messages for both rules. To avoid having to specify those rules and messages again and again, we can alias existing methods with different messages and group them into a single class:

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


    With that in place, we can add a class customer to all customer fields and be done with it:

     <input name="customer1" class="customer">
     <input name="customer2" class="customer">
     <input name="customer3" class="customer">

    You can also reuse existing methods inside other custom methods, to reuse certain implementations. For example, if you're writing a custom method for validating email addresses inside a single field, you could call the existing email method for each email:
    jQuery.validator.methods.email.call(this, email, element)

    今天很残酷,明天更残酷,后天很美好
  • 相关阅读:
    机器学习漫游(1) 基本设定
    win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)
    基于SignalR的站点有连接数限制问题及解决方案
    如何删除EF4.0以上的版本
    从JDBC到hibernate再到mybatis之路
    ORA-01747: user.table.column, table.column 或列说明无效 异常解决方法总结
    MyBatis Oracle 批量新增、更新和删除
    IDEA 方法注释模板和类注释模板
    MyBatis 使用注解方式实现一对多
    (转)GPT磁盘与MBR磁盘区别
  • 原文地址:https://www.cnblogs.com/thinking-better/p/5327348.html
Copyright © 2011-2022 走看看