0

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

     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
            }
        },

我试过但它不工作,任何其他方式我都可以得到这个验证工作。

- 谢谢

4

1 回答 1

1

使用内置rules()方法添加规则。 请参阅文档。

注意:必须在调用调用该方法.validate(),并且必须与.each().

jsFiddle 演示

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
    });
});

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

以下与 custom 结合使用messages:。请注意,格式与将规则添加为选项时略有不同.validate()...

$("input[name*='depository']").each(function() {
    $(this).rules('add', {
        required: true,
        digits: true,
        messages: {
            required: "Required input",
            digits: "Only digits please"
        }
    });
});

或者,您可以使用 aclass代替,但要使其正常工作,您还必须将其与.each()...

jsFiddle 演示

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
    });
});
于 2012-12-27T23:08:02.250 回答