首页 > 解决方案 > 如果用户超过 16 岁,则验证出生日期

问题描述

尝试验证用户是否高于 16 岁但每次都不符合条件这是我的代码

尝试添加条件以检查用户是否至少 16 岁

if (($("#year").val(), month, day)) {

这是尝试

if (($("#year").val(), month, day) <= getAge(new Date())) {

其中 getAge 是这样的函数

function getAge(DOB) {
    var today = new Date();
    var birthDate = new Date(DOB);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }    
    return age;
}

但如果我输入日期为 2001 年 10 月 22 日,它仍然会进入状态

标签: javascriptjquery

解决方案


根据您的 '10/22/2001' 示例,您的 getAge 函数返回 16。

但是您的 if 语句很奇怪。如果某人今天出生,您无需知道他们的生日。

您可以使用:

if (getAge($("#year").val()) < 16) {
    // the person is 15 or under
}
else {
    // the person is 16 or over.
}

推荐阅读