jquery validate - 使用表单名称['id'] [name2]的array()通过动态表单进行循环

时间:2015-08-17 10:05:19

标签: jquery jquery-validate

我有这个表单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。我已经工作了几个小时,我怎么能在那里进行验证工作,哈哈,我不知道你们是怎么做的)

0 个答案:

没有答案