jQuery验证maxlength参数基于条件

时间:2015-02-25 14:22:04

标签: jquery jquery-validate

如何根据条件使用jQuery验证更改文本框的最大长度。

代码

 SSN: { required: true, minlength: 9, maxlength: 9 }

如何根据if-else条件更改maxlength?

3 个答案:

答案 0 :(得分:2)

三元表达式会不会是你想要的?

SSN: { required: true, minlength: 9, maxlength: ((condition)?true:false) }

例如:

SSN: { required: true, minlength: 9, maxlength: ((my_var=="short")?13:17) }

如果条件满足则打印13,否则打印17

编辑:修正最大长度,使其大于最小长度。

答案 1 :(得分:0)

您可以使用rules选项中的函数return基于特定动态条件的所需参数。

在下面的演示中,点击复选框会将maxlength设为12,否则为15

$('#myform').validate({
    rules: {
        SSN: {
            required: true,
            minlength: 9,
            maxlength: function(element) {
                return $('#foo').is(':checked') ? [12] : [15];
            }
        }
    }
});

DEMO:http://jsfiddle.net/ny6ahnh0/

答案 2 :(得分:-1)

正如此doc所示,我认为您可以通过maxlength方法更改maxlength

$( "#yourTextBox" ).validate({
  rules: {
    field: {
      required: true,
      maxlength: function(){
        return condition ? valueIfTrue, valueIfFalse;
      }
    }
  }
});
编辑:正如@Sparky指出的那样,配置无法重新启动。因此,maxlength应该由回调函数更改。