下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码:
修复jquery.validate
插件中name属性相同(如name='a[]‘
)时验证的bug
使用jQuery.validate
插件,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上。这个bug在动态生成表单时候影响比较大。
通过查询资料,找到一个解决方案:
具体内容为
在页面上引入以上代码,然后给相关节点加上id属性,当name属性相同时候会以id属性来验证
-------------------------------------------------------------------------------------------
required: true,email: true,messages: {
required: "Specify a valid email"
}
});
});
});
----------------------------------------------------------------------------------
jquery.validate.js 相同name的多个元素只能验证第一个元素的解决办法
动态生成的相同name的元素验证只会取第一个.
很恼火的问题.只有将jquery.validate.js中的对相同name的元素判断注释掉.
但是不知道会不会引起其他地方的BUG
希望以后jquery.validate.js能做针对元素ID进行验证而不仅仅针对元素name验证.
方法:
将484行的代码注释掉即可
注释成
-----------------------------------------------------------------------------------------------------------------------------------------