我正在使用此脚本来验证某人是否在进入生日时超过16岁。问题是,它只能以当前的年度准确度进行验证,所以如果有人今年年满16岁但仍然是15岁,那么它仍然会通过。
任何人都可以告诉我当天如何验证,Date()javascript函数在线没有足够的信息。
我的代码:
$.validator.addMethod("check_date_of_birth", function(value, element) {
var dateOfBirth = $("#dob").val();
var arr_dateText = dateOfBirth.split("/");
day = arr_dateText[0];
month = arr_dateText[1];
year = arr_dateText[2];
var mydate = new Date();
mydate.setFullYear(year, month-1, day);
var currdate = new Date();
var totalage = (currdate.getFullYear()) - (mydate.getFullYear());
if (totalage < 16){
$.validator.messages.check_date_of_birth = "Sorry, only persons over the age of 16 can be covered";
return false;
}
return true;
});
答案 0 :(得分:7)
您可以检查输入的日期是否&gt;当前日期 - 16年喜欢
$.validator.addMethod("check_date_of_birth", function (value, element) {
if (this.optional(element)) {
return true;
}
var dateOfBirth = value;
var arr_dateText = dateOfBirth.split("/");
day = arr_dateText[0];
month = arr_dateText[1];
year = arr_dateText[2];
var mydate = new Date();
mydate.setFullYear(year, month - 1, day);
var maxDate = new Date();
maxDate.setYear(maxDate.getYear() - 16);
if (maxDate < mydate) {
return false;
}
return true;
}, 'Sorry, only persons over the age of 16 can be covered');
演示:Fiddle
答案 1 :(得分:-4)
变化
maxDate.setYear(maxDate.getYear() - 16);
到
maxDate.setYear(maxDate.getFullYear() - 16);