Код: Выделить всё
jQuery(document).ready(function($) {
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
function checkAge() {
var dobField = $('[name="dob"]');
var dobValue = dobField.val();
var membershipValue = $('[name="catmembership"]:checked').val();
var notValidTip = $('You must be 19 years old or below to join the Junior membership.');
var dobErrorLabel = $('#dob-error');
if (membershipValue === "Junior") {
var age = getAge(dobValue);
if (age >= 19) {
dobField.addClass('wpcf7-not-valid wpcf7-not-valid-required error');
dobField.removeClass('valid');
dobField.attr('aria-required', 'true');
dobField.attr('aria-invalid', 'true');
notValidTip.insertAfter(dobField);
dobErrorLabel.show();
} else {
dobField.removeClass('wpcf7-not-valid wpcf7-not-valid-required error');
dobField.addClass('valid');
dobField.attr('aria-required', 'false');
dobField.attr('aria-invalid', 'false');
$('.wpcf7-not-valid-tip').remove();
dobErrorLabel.hide();
}
} else {
dobField.removeClass('wpcf7-not-valid wpcf7-not-valid-required error');
dobField.addClass('valid');
dobField.attr('aria-required', 'false');
dobField.attr('aria-invalid', 'false');
$('.wpcf7-not-valid-tip').remove();
dobErrorLabel.hide();
}
}
$(document).on('change', '[name="dob"]', function() {
checkAge();
});
// Updated event listener for focusout event on the DOB field
$(document).on('focusout', '[name="dob"]', function() {
checkAge();
});
Подробнее здесь: https://stackoverflow.com/questions/784 ... tion-field