I encountered an issue while attempting to utilize a module named disclaimer in Drupal 7. The alert message "You must enter the year you were born in." appears twice and then redirects to a URL that should only be accessed after verifying that you are over 18 years old.
Despite trying suggested solutions, the issue persists with the alert showing up twice. I suspect the problem may lie in the action of the enter button. Below is the function for it.
Drupal.behaviors.disclaimer = {
attach: function (context, settings) {
// action on enter button
$('#disclaimer_enter', context).click(function () {
var check = true;
// check if age form is set
if (settings.disclaimer.ageform === 1) {
var check = Drupal.checkAge();
}
// if everything is fine, add cookie and close colorbox
if (check) {
$.cookie(settings.disclaimer.cookie_name, '1', { path: settings.disclaimer.cookie_path });
$.colorbox.remove();
}
});
},
};
}
Drupal.checkAge = function () {
var now = new Date();
var date = now.getDate();
var month = now.getMonth() + 1;
var year = now.getFullYear();
var optmonth = jQuery("#edit-disclaimer-age-month option:selected").val();
var optday = jQuery("#edit-disclaimer-age-day option:selected").val();
var optyear = jQuery("#edit-disclaimer-age-year option:selected").val();
var age = year - optyear;
if (optmonth > month) {age--;} else {if(optmonth == month && optday >= date) {age--;}}
// if current year, form not set
if (optyear == year) {
alert(Drupal.t("You must enter the year you were born in."));
return alert;
// if under age, alert and redirect !
} else if (age < Drupal.settings.disclaimer.limit) {
alert(Drupal.t("Sorry, you are Under age limit and are prohibited from entering this site!"));
location.replace(Drupal.settings.disclaimer.exiturl);
return false;
} else {
// age limit ok
return true;
}
}