对于jquery.validate,按出生日期检查确切日期

时间:2014-04-01 09:38:27

标签: jquery validation date

我正在使用此脚本来验证某人是否在进入生日时超过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;        
});

2 个答案:

答案 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);