我有这个表单https://jsfiddle.net/y2L3rcts/2/,当用户点击“添加更多”时,它会动态地将输入框添加到表单中。
初始输入框包含以下name=
元:
label[0][name]
label[0][left]
动态添加新输入框会创建name=
label[1][name]
label[1][left]
依旧......
使用查询规则可以轻松验证初始输入框:
//Form Validation
$('form').validate({
rules: {
"label[0][name]": {
required: true
},
"label[0][left]": {
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});
并且,验证附加的“添加更多”输入框可以通过在规则中明确声明label[id]
来完成,即使它们在表单中不存在。
"label[0][name]": {
required: true
},
"label[0][left]": {
required: true
},
// Add the "Add More" input box labels assuming they do exist
"label[1][name]": {
required: true
},
"label[1][left]": {
required: true
},
"label[2][name]": {
required: true
},
"label[2][left]": {
required: true
}
等等。但这种方法是静态的。对于可以动态创建多少"Add more"
个输入框没有限制,因此在我们的规则中明确定义所有label[id]
(例如99)将是低效的。
Jquery Validator是否有办法检查创建了label[]
的输入框的数量并将规则应用于所有输入框?
顺便说一句,我尝试修改自己的jquery.validator.js
按照这样的建议:http://www.codeboss.in/web-funda/2009/05/27/jquery-validation-for-array-of-input-elements/但我仍然没有运气,我不认为问题的范围可以解决我的问题。
希望有人可以提供帮助。谢谢!
。(P.S。我已经工作了几个小时,我怎么能在那里进行验证工作,哈哈,我不知道你们是怎么做的)