jQuery验证 - 依赖于值的相同规则

时间:2017-08-10 00:23:22

标签: jquery jquery-validate

我在输入字段验证时获取2个范围值的语法有问题。

我的表单有2个选择字段和一个文本输入字段。

If select1 = 1 and select2 = A,我希望文字字段的范围值为1 to 120

If select1 = 1 and select2 = B,我希望文字字段的范围值为121 to 500

我的验证码:

  PrepurchasePlotNumber: {
    digits: true,
    required: {
        depends: function() {
            return ($("input[name=PlotType]:checked").val() == "Prepurchase");
        }
    },
    range: {
        param: [1, 120],
        depends: function() {
            return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A");
        }
    },
    range: {
        param: [121, 500],
        depends: function() {
            return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "B");
        }
    }
},

数字和要求的工作正常。 我无法正确测试我的代码以测试两种范围情况。任何时候只有一个可以工作。 请有人指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

  

任何时候都只能使用一个。

因为您不能在同一个字段上声明两次相同的规则。第二个可能会超过第一个。

此外,您使用depends撰写的方式,表示您只有在符合条件时才需要range规则。

您只需使用函数return参数,具体取决于条件。

PrepurchasePlotNumber: {
    digits: true,
    range: function() {
        if (($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A")) {
            return [1, 120]
        } else {
            return [121, 500]
        }   
    },
    ....

根据需要修改逻辑。