我正在尝试在Drupal 7中使用一个名为免责声明的模块,但警告“你必须输入你出生的那一年。”显示两次,然后继续重定向到您不应该看到的URL,直到您确认您已超过18岁。
我尝试了这些建议但它仍然出现了两次。我认为问题可能是输入按钮操作。这是功能。
Drupal.behaviors.disclaimer = {
attach: function (context, settings) {
// action on enter button
$('#disclaimer_enter', context).click(function () {
var check = true;
// age form is set
if (settings.disclaimer.ageform == 1) {
var check = Drupal.checkAge();
}
// everything good, 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;
}
}
答案 0 :(得分:7)
因为您返回提醒。这将显示警报两次,因为您没有返回false
,将继续显示下一页。
试试这个:
if (optyear == year) {
alert(Drupal.t("You must enter the year you were born in."));
return false;
}
答案 1 :(得分:1)
返回警报不是必需的。
alert(Drupal.t("You must enter the year you were born in."));
//return alert;
只需使用alert();
即可触发警报