在表单页对应的js中加入如下代码 只有当前页可以解决对多个name校验

    if ($.validator) {
           $.validator.prototype.elements = function () {
               var validator = this,
                 rulesCache = {};
               return $(this.currentForm)
               .find("input, select, textarea")
               .not(":submit, :reset, :image, [disabled]")
               .not(this.settings.ignore)
               .filter(function () {
                   if (!this.name && validator.settings.debug && window.console) {
                       console.error("%o has no name assigned", this);
                   rulesCache[this.name] = true;
                   return true;

解决方案二:

修改源文件 所有的页面都可以验证多个name

方式1:修改jquery.validate.js文件

用 ctrl+F 查找 this.name in rulesCache 注释掉如下代码。

    elements: function() {
            var validator = this,
                rulesCache = {};
            // select all valid inputs inside the form (no submit or reset buttons)
            return $(this.currentForm)
            .find("input, select, textarea")
            .not(":submit, :reset, :image, [disabled]")
            .not( this.settings.ignore )
            .filter(function() {
                if ( !this.name && validator.settings.debug && window.console ) {
                    console.error( "%o has no name assigned", this);
                // 注释掉这里
                // select only the first element for each name, and only those with rules specified
                //if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) {
                //    return false;
                rulesCache[this.name] = true;
                return true;

方式2:修改jquery.validate.min.js文件

用 ctrl+F 查找(c[this.name]=!0,!0)})

    return !this.name && b.settings.debug && window.console && console.error("%o has no name assigned", this),
//this.name in c || !b.objectLength(a(this).rules()) ? !1 : (c[this.name] = !0, !0)//注释这行
c[this.name] = !0, !0 //添加这行

本文来源 : http://www.cnblogs.com/danywdd/p/5667903.html

下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码: 修复jquery.validate插件中name属性相同(如name='a[]‘)时验证的bug 使用jQuery.validate插件http://jqueryvalidation.org/,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上。这个bug在动态生成表单时候影响比较大。 通过查询资料,找到一个解决方案: http://stackoverflow.com/questions/931687/using-jquery-validate-plugin <form id="form" method="post" action="http:xxxx.com"> <input type="text" name="username" /> <input type="text" name="username" /> <input type="submit" value="提交" /> </form> 在一个表单中如果有多个相同的n 在项目中经常遇到,表单可以动态追加多行。但是追加的行中,input 文本框的name会重复。如果用jquery validator ,它只支持验证第一个input,后面的name相同的input不会被验证,怎么办呐?经过研究源码,提出了解决办法。 基于jQuery Validation Plugin - v1.14.0 - 6/30/2015改造 在defaults默认配置中增加 duplicat... 在项目开发中,通常会遇到一个表格构成的表单,那么表单里面就可能会有几个元素的名字相同,针对这种情况在validate默认的条件下是只能验证第一个,而后面的元素就不能得到验证,那么要解决这种问题就有以下两种处理方式。 注意:无论采用下面哪种处理方式,相同名称的元素都必须拥有id,否则是没有任何效果的。 在需要验证的页面的js文件中添加以下代码即可: jquery validate在对多个相同name校验时,只校验第一个input框。 解决方案一: 在表单页对应的js中加入如下代码 只有当前页可以解决对多个name校验 if ($.validator) { $.validator.prototype.elements = function () { var validator 使用jQuery.validate插件http://jqueryvalidation.org/,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上。 $(function () { if ($.validator) { $.validator.prototype.elements = function () { 下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码: 修复jquery.validate插件中name属性相同(如name=’a[]‘)时验证的bug 使用jquery.validate插件http://jqueryvalidation.org/,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上。这个b... if ($.validator) { $.validator.prototype.elements = function () { var validator = this, rulesCache = {}; // select all valid inputs inside the form (no submit or reset butt 用过的人应该知道,validate.js中如果有多个name相同的控件,提交或者调用valid时只会验证这些name相同的第一个控件,为解决这个问题,从网上找了两种方 一是在百度上都能搜到的: if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { return false; 在使用Jquery validate中遇到一个问题,当表单元素有name相同字段时,validate校验表单元素name第一个值是否通过校验,比如 <input type="text" name="userName"/> <input type="text" name="userName"/> <input type="text" name="userNa... 前一段时间学习了jquery validate 的使用,还满心欢喜的觉得以后终于可以规范化的去写表单验证了。不然,碰到使用validate 检查相同name 值的问题着实难到我了。