zoukankan      html  css  js  c++  java
  • jquery.validata1.11怎么支持metadata

    使用metadata方式
    这个需要使用jquery.metadata.js插件才可工作,通过在表单项中定义特殊的属性来指定验证规则

    但是最新的jquery.validate 1.11没有内置metadata的支持,需要修改一下代码:

    搜索jquery.validate.js文件中的$.validator.classRules(element),并在其前加入以下行:
    
    $.validator.metadataRules(element),
     
    
    再搜索 staticRules:, 在其前面加入以下代码,增加metadata的支持:
    
    metadataRules: function(element) {
    
      if (!$.metadata) return {};
    
      var meta = $.data(element.form, "validator").settings.meta;
    
      return meta ?
    
      $(element).metadata()[meta] :
    
      $(element).metadata();
    
    },

    到这里,就改造完成了,要使用metadata,页面中使用以下方式(省略了其它代码):

    <script src=”lib/jquery.js” type=”text/javascript”></script>
     
    <script src=”lib/jquery.metadata.js” type=”text/javascript”></script>
    
    <script src=”lib/jquery.validate.js” type=”text/javascript”></script>
    
    <form>
        <input name=”user” class=”{required:true,minlength:3}” />
    </form>

    但是默认的class是用来定义css样式类名的,在这里作为作为验证规则使用,会造给样式维护带来太多不便的, 有两种方式解决这个问题:

    A. 直接修改 jquery.metadata.js,  type修改为attr, name修改为validate,表示从表单项的validate属性取得验证规则

    B. 在页头中调用 $.metadata.setType(‘attr’,'validate’), 表示从表单项的validate属性取得验证规则

  • 相关阅读:
    阅读《构建之法》
    准备工作
    课程总结
    第十四周总结
    第十三周总结
    Flex撑开
    多行文本展示为省略号样式的react组件
    如何在Spring Boot 中动态设定与执行定时任务
    System.arraycopy() 和 Arrays.copyOf() 的区别说明
    使用反射机制,获取 ArrayList 的容量大小
  • 原文地址:https://www.cnblogs.com/luyang1990/p/5306939.html
Copyright © 2011-2022 走看看