我正在尝试根据下拉值来验证输入的长度。当我添加一个取决于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;
}
}
}
},
如果我把警报();在我可以看到代码触发,但在页面上它从来没有警告用户他们的输入太短,它允许页面继续前进。我做错了什么?
答案 0 :(得分:0)
您需要从depends
属性中删除minlength
,因为minlength返回所需的最小字符数,您可以直接检查条件并直接返回相应的数字,例如:
...
minlength: function () {
var paymeth = $('select[name="PayMethod"]').val();
if (paymeth == 'American Express') {
return 14;
} else {
return 16;
}
}