JavaScript 计算用户是否超过 16 岁

Calculating if user is over 16 years old with JavaScript

我正在制作一个带有日期输入和后续文本框的表单。如果用户选择了小于 16 岁的生日,我希望启用文本框。

到目前为止我有:

function checkAge() {
    var birthDate = document.getElementById("DoB");
    var today = new Date();

    if (today >= new Date(birthDate.getFullYear() + 16, birthDate.getMonth(), birthDate.getDate())) {
        // Member over 16, keep parent/guardian textbox disabled.
        document.getElementById("parentConsent").disable = true;
    } else {
        // Require Parent/Guardian permission
        document.getElementById("parentConsent").disable = false;
        document.getElementById("parentConsent").setAttribute('required');
    }
}

这是我当前的 JsFiddle - http://jsfiddle.net/n3d9mLey/

您正在直接使用 dom 元素来计算日期,您可以这样尝试

function checkAge() {
    var birthDate = new Date(document.getElementById("DoB").value);
    var today = new Date();

    if (today >= new Date(birthDate.getFullYear() + 16, birthDate.getMonth(), birthDate.getDate())) {
        // Member over 16, keep parent/guardian textbox disabled.
        document.getElementById("parentConsent").disable = true;
    } else {
        // Require Parent/Guardian permission
        document.getElementById("parentConsent").disable = false;
        document.getElementById("parentConsent").setAttribute('required');
    }
}