Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript alert shows up twice

Tags:

javascript

I am trying to use a module called disclaimer in Drupal 7 but the Alert "You must enter the year you were born in." Shows up twice and then proceeds to redirect to the URL you are not supposed to see until you verify you are over 18.

I tried the suggestions and it still showed up twice. I think the problem may be the enter button action. Here is the function for that.

 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;
    }
  }
like image 842
user2316905 Avatar asked Oct 23 '25 02:10

user2316905


1 Answers

Because you're returning alert. That will show the alert twice and because you aren't returning false, will make it continue to the next page.

Try this:

if (optyear == year) {
    alert(Drupal.t("You must enter the year you were born in."));
    return false;
}
like image 134
mattytommo Avatar answered Oct 25 '25 17:10

mattytommo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!