使用JavaScript计算用户是否超过16岁

时间:2015-02-07 05:20:27

标签: javascript validation date

我正在制作一个带有日期输入和后续文本框的表单。如果用户选择了不到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/

1 个答案:

答案 0 :(得分:0)

您正在直接使用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');
    }
}