jQuery使用动态数量的字段进行验证

da5*_*5id 14 validation jquery field dynamic

我有一个表格,其中一个舞台具有动态数量的字段组,其中数字基于前一阶段的答案.

我将服务器端字段生成为数组,即

<input id="foo[0]"...
<input id="bar[0]"...

<input id="foo[1]"...
<input id="bar[1]"...

<input id="foo[2]"...
<input id="bar[2]"... etc
Run Code Online (Sandbox Code Playgroud)

无论数字如何,所有字段都是必需的,在某些情况下我还需要根据类型和位数进行验证.我正在使用jQuery validate插件进行客户端处理(是的,也支持服务器端的东西)并且验证不能内联,因为表单需要传递XHTML Strict(编辑:请参阅下面的我的附录) .

我的问题是我无法弄清楚如何使用动态数量的字段进行验证.以下是表单其余部分的验证语法通常如下所示:

$(document).ready(function() {

    // validate stage_form on keyup and submit
    var validator = $("#form_id").validate({

        // rules for field names
        rules: {

            name: "required", 
            address: "required",
            age: { required: true, number: true }

        },

        // inline error messages for fields above
        messages: {

            name: "Please enter your name", 
            address: "Please enter your address",
            age: { required: "Please enter your age", number: "Please enter a number" }

        }

    });

});
Run Code Online (Sandbox Code Playgroud)

Sin*_*nan 13

实际上它应该工作如果你使用类而不是初始化规则作为validate()选项.

标记:

<input id="foo[0]" class="required"
<input id="bar[0]" class="required number"

<input id="foo[1]" class="required"
<input id="bar[1]" class="required email"
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$(document).ready(function() {

  var validator = $("#form_id").validate({
    messages: {
            name: "Please enter your name", 
            address: "Please enter your address",
            age: { 
               required: "Please enter your age", 
               number: "Please enter a number" 
            }

    }

  });

});
Run Code Online (Sandbox Code Playgroud)

希望这有效.思南.