我正在尝试使用 jQuery 验证链接两个表单字段。用户最多只能输入 5 年,但这分布在两个输入中,月和年。
我已经制定了以下我认为应该如何组合在一起的方法:
$('#leform')validate({
debug: true,
rules: {
years : {
required : {
depends: function(element) {
var x = ($('#years').val() == 5) && ($('#months').val() == 0),
y = ($('#years').val() < 5),
z = (x || y);
return z;
},
number : true,
max : 5,
min : 0
},
months : {
required : true,
number : true,
min: 0,
max: 11
}
}
});
用户可以输入,3 年 6 个月,没问题,但问题出在用户输入 5 年,4 个月时,我无法触发验证。有任何想法吗?
-------- 编辑/解决方案 ---------
对不起,我是一个相当新的用户(长期潜伏者)所以不得不编辑问题来发布答案
好的,事实证明我误解了规范,看起来“必需”是布尔值的真假。
我使用以下内容扩展了验证:
jQuery.validator.addMethod("yearCount", function(value, element) {
var x = ($('#years').val() == 5) && ($('#months').val() == 0),
y = ($('#years').val() < 5),
z = (x || y);
return z;
}, "blah blah blah");
并更新规则如下:
required : true,
max : 5,
min : 0,
yearCount : true