jQuery复杂验证规则

时间:2012-07-18 16:24:18

标签: jquery jquery-validate

我试图在表单上动态指定一些规则。在此表单上,我有三个TextBox输入(Text1Text2Text3)和一个复选框(Check1

我将配置以下规则:

  1. Text2的规则:该字段应为正数,带有2位小数,且其值应等于或大于Text1

  2. Text3的规则:该字段应为包含2位小数的数字。此外:

    a)如果选择Text3Check1的值必须等于零

    b)如果未选择Text3,则Text1的值必须小于或等于Text2且小于或等于Check1

  3. 如何在jQuery Validation插件中表达这些规则?有什么建议吗?

    更新: 这是(1)的基本规则。它错过了相等或更好的部分:

    $('#Text2').rules('add', {
        required: true,
        min: 0.0,
        number: true,
        messages: {
            required: 'Message 1',
            min: 'Message 2',
            number: 'Message 3'
        }
    });
    

1 个答案:

答案 0 :(得分:3)

您可以使用$ .validator.addMethod ..

例如,

$.validator.addMethod("decimal", function(val, element){return /\d*(\.\d+)?/.test(val)}, "Should enter only numericals.");

上述方法只检查小数。

我们可以通过在类名中添加第一个参数名称来使用它,例如

<input type="text" class="required decimal" />

在您的情况下,您需要检查值是否大于text1,因此我们可以将其作为

$.validator.addMethod("text2validator", function(val, element){if(val > $("#text1").val())return true;}, "Value should be greater than text1")

<input type="text" id="text1" value="10" />
<input type="text" id="text2" class="required decimal text2validator" />