Jquery Validate取决于最小值的更改规则值



Javascript

dollars: {
                required: true,
                number: true,
                min:{ 
                    depends: function(element) {
                        if($('#method option:selected').text() == "Cash Deposit"){
                            return 20;
                        } else if($('#method option:selected').text() == "Wire Transfer"){
                            return 200;
                        }
                        else{
                            return 20;
                        }
                    }
                }
                ,
                max: maximumDA,
                unique: true
            },

HTML

<select class="required" id="method" name="method" required>
        <option value="deposit">Cash Deposit</option>
        <option value="wire">Wire Transfer</option>
        <option value="cbymail">Cash by Mail</option>
</select>

当选择其他选项时,我正在尝试更改最低美元金额。依赖程序不能正常工作。我有一种感觉,我必须创建自己的规则才能使其工作,我只是想知道它们是否是依赖程序正常工作的一种方式。

编辑:

我的解决方案:

为了动态地更改最小数量,我认为你不能使用依赖函数来更改规则的值,只有开关。

我只是简单地删除并添加了规则,使其在我需要的时候发挥作用。

$('#method').change(function(){
    if($('#method option:selected').text() == "Cash Deposit"){
         $('#dollars').rules("remove","min");
         $('#dollars').rules("add",{min:20});
    }
    else if($('#method option:selected').text() == "Wire Transfer"){
         $('#dollars').rules("remove","min");
         $('#dollars').rules("add",{min:200});
    }
    else{
         $('#dollars').rules("remove","min");
         $('#dollars').rules("add",{min:20});
    }
});

首先,您应该在select标记中发生(事件(更改时返回该值。然后,只有函数才能工作。

如果函数在dollars.min-it代码中,则不知道何时调用它。

 var minAmount;
    $('#method').change(function(){
        if($('#method option:selected').text() == "Cash Deposit")         {  minAmount=20;   }
        else if($('#method option:selected').text() == "Wire Transfer")   {  minAmount=200;  }
        else                                                              {  minAmount=20;   }
        alert(minAmount);
    });

现在assign最小值为dollars :{ min : minAmount }

      dollars: {
            required: true,
            number: true,
            min:{ depends: minAmount },
            max: maximumDA,
            unique: true
        },

这对我有效:

function returnValue() {
    var theValue;
    if ($('#method option:selected').val() == "deposit") {
        theValue = 20;
    } else if ($('#method option:selected').val() == "wire") {
        theValue = 200;
    } else {
        theValue = 20;
    }
    var variable = {
        dollars: {
            required: true,
            number: true,
            min: {
                depends: theValue
            },
            max: maximumDA,
            unique: true
        }
    };
    return variable;
}
$('#method').change(function () {
    returnValue();
});
returnValue();

请注意,出于测试目的,我对dollars属性进行了一些更改。


备选方案:

您可以使用:

function returnValue() {
    if ($('#method option:selected').val() == "deposit") {
        return 20;
    } else if ($('#method option:selected').val() == "wire") {
        return 200;
    } else {
        return 20;
    }
}

然后通过调用函数

min: {
        depends: returnValue()
     },

最新更新