HyperionX
HyperionX

Reputation: 1646

Calculating if user is over 16 years old with JavaScript

I'm making a form with a date input and a following textbox. I want the text box to become enabled if the user has selected a birthday that is less than 16 years old.

So far I have:

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');
    }
}

Here's my current JsFiddle - http://jsfiddle.net/n3d9mLey/

Upvotes: 1

Views: 803

Answers (1)

Mukesh Agarwal
Mukesh Agarwal

Reputation: 528

You are taking the dom element directly for calculating the date, you can try something like this

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');
    }
}

Upvotes: 1

Related Questions