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

Des*_*ond 0 validation jquery 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;        
});
Run Code Online (Sandbox Code Playgroud)

Aru*_*hny 7

您可以检查输入的日期>当前日期 - 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');
Run Code Online (Sandbox Code Playgroud)

演示:小提琴