Reputation: 1646
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
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