Jquery验证 - 如果其他字段为

时间:2017-02-10 00:12:56

标签: javascript jquery jquery-validate

我目前只有两个字段只有在填写其中任何一个时才需要。这样可以正常工作,但是只有在填写了另一个字段时才添加最小值到#minimumField是很麻烦的。如下面的代码所示,无论#otherField是否填写,都会触发最小错误消息。

如果填写了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()!="";
    }
}

1 个答案:

答案 0 :(得分:1)

  编辑:现在可以在正确的时间开火,但我如何指定最低金额?它的默认值为1,但我希望它为0.01。

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

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

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

$("#otherField").val() != ""将始终返回truefalse,这就是为什么您将最低值视为1true)。

如果您希望最小值为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 : '';
    }
}

DEMO:jsfiddle.net/j11zoap7/