使用jQuery验证插件验证多个具有相同名称的表单字段
我使用jQuery validate插件和()成功地验证了多个具有相同名称的表单字段,例如使用jQuery验证插件验证多个具有相同名称的表单字段,jquery,jquery-validate,Jquery,Jquery Validate,我使用jQuery validate插件和()成功地验证了多个具有相同名称的表单字段,例如first\u name[] 但是,错误消息仅显示字段的第一个实例,而不是下一个实例 为什么呢 作为记录,上述链接中提供的解决方案包括编辑jquery.validate.js并将checkForm函数内容更改为: checkForm: function() { this.prepareForm(); for ( var i = 0, elements = (this.currentElements = th
first\u name[]
但是,错误消息仅显示字段的第一个实例,而不是下一个实例
为什么呢
作为记录,上述链接中提供的解决方案包括编辑jquery.validate.js并将checkForm函数内容更改为:
checkForm: function() {
this.prepareForm();
for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName( elements[i].name ).length != undefined && this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
} else {
this.check( elements[i] );
}
}
return this.valid();
}
引用OP: “我使用jQuery validate插件和此解决方案,成功地验证了多个具有相同名称的表单字段,例如
first_name[]
()”
我强烈建议不要编辑任何插件的源代码
- 您必须确保在更新时不会写得太多
- 你会给下一个在项目中工作的人造成混乱
- 您可能会引入任意数量的未知bug
引用OP: 但是,错误消息仅显示在字段的第一个实例中,而不是下一个实例 为什么?” 当您有多个字段共享同一个
名称时,这个插件就会发生这种情况。。。只有第一个实例被识别。这方面没有解决办法
该插件旨在通过表单的name
属性跟踪表单输入。我不知道任何黑客将如何绕过这一点,因为你仍然需要跟踪每一件事而不重复
但是,您根本不需要执行这些操作。该插件设计用于处理作为数组一部分的字段name
<代码>“字段[1]”
、“字段[2]”
等均可接受
- 如果表单是静态的,只需创建唯一的字段名
- 如果表单是动态的,请使用增量计数器正确创建数组索引,以便每个字段都以唯一的
名称结束
rules: {
"field_name[]": "required"
}