jQuery 验证 - 相同的规则取决于值

jQuery Validation - same rule depending on values

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

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

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

数字和所需的工作正常。 我无法让我的代码正确地测试这两种范围场景。任何时候只有一个可以工作。 请有人能指出我正确的方向。

Only one will work at any one time.

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

此外,您使用 depends 编写它的方式是说您只需要满足条件时的 range 规则。

您只需要根据条件使用函数 return 参数。

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

根据需要修改逻辑。