Jquery 验证 - 如果其他字段符合要求,则包括最低要求

Jquery Validation - Include minimum requirement if other field is

我目前有两个字段只有其中一个填写时才需要。这工作正常,但麻烦的是只有在另一个填写时才向#minimumField添加一个最小值。如下代码stands,不管#otherField 是否填写,最小的错误信息是触发。

如何获得这个最小值只有在填写其他字段时才需要?

otherField: {
    required: function(element){
        return $("#minimumField").val()!="0";
    }
},

minimumField: {
    required: function(element){
        return $("#otherField").val()!="";
    },
    min: 0.01
}

提前致谢!

编辑:现在可以在正确的时间触发,但我如何指定最小数量?它默认为 1,但我希望它为 0.01。

minimumField: {
    min: function(element){
        return $("#otherField").val()!="";
    }
}

EDIT: Got it to now fire at the right time, but how do I specify the minimum amount? It's defaulting to 1, but I want it to be 0.01.

minimumField: {
    min: function(element){
        return $("#otherField").val()!="";
    }
}

那是因为您的 return 正在评估一个布尔值...

return $("#otherField").val() != "";

$("#otherField").val() != "" 将始终 return truefalse,这就是为什么您看到的最小值为 1 (true) .

如果你想要最小值是0.01,那么你必须return这个值...

minimumField: {
    min: function(element){
        if ($("#otherField").val() != "") {
            return 0.01; // min set to '0.01'
        } else {
            return '';  // no min value set
        }
    }
}

或者,您可以使用插件提供的自定义 :filled 选择器...

minimumField: {
    min: function(element) {
        if ($("#otherField").is(":filled")) {
            return 0.01; // min set to '0.01'
        } else {
            return '';  // no min value set
        }
    }
}

同样使用三元运算符...

minimumField: {
    min: function(element) {
        return ($("#otherField").is(":filled")) ? 0.01 : '';
    }
}

演示:jsfiddle.net/j11zoap7/