jQuery validate - 具有类似规则的组输入

时间:2012-12-27 10:36:23

标签: jquery-validate

我正在使用jquery validate来验证提交的表单。表单有三个输入字段,它们具有相同的规则,即只有number和required - true。我可以为所有三个输入写一条规则吗 -

     rules: {
                "depository.startDate":{
                    required:true,
                    digits:true
                },
                "depository.endDate":{
                    required:true,
                    digits:true
                },
                "depository.port":{
                    required:true,
                    digits:true
                }
            },

 rules: {
            "depository.startDate, depository.port, depository.endDate ":{
                required:true,
                digits:true
            }
        },

我试过但它不起作用,任何其他方式我都可以进行验证工作。

- 感谢

1 个答案:

答案 0 :(得分:1)

使用内置的rules()方法添加规则。 See documentation.

注意:必须在致电.validate()后调用此方法,并且必须与.each()合并。

jsFiddle DEMO

HTML:

 <input type="text" name="depository.startDate" />
 <input type="text" name="depository.endDate" />
 <input type="text" name="depository.port" />

jQuery的:

$('#form').validate({
    // your other options
});

// the following method must come AFTER .validate()
$("input[name*='depository']").each(function() {
    $(this).rules('add', {
        required: true,
        digits: true
    });
});

当您向表单动态添加字段时,此方法也非常有用。

以下内容与自定义messages:结合使用。请注意,格式与在.validate() ...

中添加规则作为选项时略有不同
$("input[name*='depository']").each(function() {
    $(this).rules('add', {
        required: true,
        digits: true,
        messages: {
            required: "Required input",
            digits: "Only digits please"
        }
    });
});

或者,您可以使用class,但为了使其正常工作,您还必须将其与.each() ...

组合使用

jsFiddle DEMO

HTML:

 <input type="text" class="myclass" name="depository.startDate" />
 <input type="text" class="myclass" name="depository.endDate" />
 <input type="text" class="myclass" name="depository.port" />

jQuery的:

$('form').validate({
    // your other options
});

// the following method must come AFTER .validate()
$('form').find('.myclass').each(function() {
    $(this).rules('add', {
        required: true,
        digits: true
    });
});