Jquery 验证 minlength with depends not firing

Jquery Validate minlength with depends not firing

我正在尝试根据下拉列表的值验证输入的长度。当我将依赖项添加到最小长度时,我无法让它工作,但它确实可以使用固定值。这有效:

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;
      }
    }
  }
},

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

你需要从minlength属性中去掉depends,因为minlengthreturns需要的最小字符数,你可以直接检查你的条件和return直接适当的数字,如:

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