Jquery验证minlength,取决于不触发

时间:2017-03-24 10:19:05

标签: jquery jquery-validate

我正在尝试根据下拉值来验证输入的长度。当我添加一个取决于minlength时,我无法让它工作,但它确实可以使用固定值。这有效:

CardNumber: {
  required: {
    depends: function(element){ 
      return $('input[name=PaySelect]:checked').val() == "0";
    }
  }, 
  minlength: 14
},

但这不是:

CardNumber: {
  required: {
    depends: function(element){ 
      return $('input[name=PaySelect]:checked').val() == "0";
    }
  }, 
  minlength: {
    depends: function(element){
      var paymeth = $('select[name="PayMethod"]').val();
      if (paymeth == 'American Express') {
        return 14;
      } else {
        return 16;
      }
    }
  }
},

如果我把警报();在我可以看到代码触发,但在页面上它从来没有警告用户他们的输入太短,它允许页面继续前进。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要从depends属性中删除minlength,因为minlength返回所需的最小字符数,您可以直接检查条件并直接返回相应的数字,例如:

...
minlength: function () {
    var paymeth = $('select[name="PayMethod"]').val();
    if (paymeth == 'American Express') {
        return 14;
    } else {
        return 16;
    }
}