我正在处理注册表单并使用jQuery验证来检查表单。我想验证出生日,以便他们不能选择例如2月的第31天。 我的代码是:
birthday: {
required: true,
min: 1,
max: {
depends: function(element) {
switch (parseInt($('#birthmonth').val())){
case 2:
maxday = 29;
break;
case 4:
case 6:
case 9:
case 11:
maxday = 30;
break;
default:
maxday = 31;
}
return maxday;
}}
},
switch
正在运行并且该函数返回每个月的正确值,但即使我选择任何月份然后第7天,验证仍显示无效选择。我尝试将返回值转换回字符串,但它仍然没有用。
答案 0 :(得分:0)
在自定义方法中,这会对您有所帮助。使用the addMethod
method创建新规则。
$(document).ready(function () {
$('#myform').validate({
rules: {
birthday: {
required: true,
min: 1,
mymax: ['#birthmonth']
}
}
});
jQuery.validator.addMethod('mymax', function (value, element, params) {
switch (parseInt($(params[0]).val())) {
case 2:
maxday = 29;
break;
case 4:
case 6:
case 9:
case 11:
maxday = 30;
break;
default:
maxday = 31;
}
params[1] = maxday; // simply used for populating message at {1}
return parseInt(value) <= maxday;
}, "Please enter a value less than or equal to {1}");
});