Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Не нажимается ссылка после перезагрузки страницы

#javascript #jquery #jquery_validation


Форма отправляется успешно. Success отрабатывает,страница перезагружается, но нужно,чтобы
после перезагрузки страницы нажалась ссылка.
Пробовал два варианта:

$(document).ready(function(){
  $('form').validate({
    .....
      submitHandler: function(form) {
        $(form).ajaxSubmit(
          ....
          success(function(data){
            ......
            setTimeout(location.reload(),1000);
            $('#link').trigger('click');
           });
        );
      }
  });
});


И второй

$(document).ready(function(){
  $('form').validate({
    .....
      submitHandler: function(form) {
        $(form).ajaxSubmit(
          ....
          success(function(data){
            ......
            setTimeout(location.reload(),1000);
            $(document).ready(function(){
              $('#link').trigger('click');
            });
           });
        );
     }
  });
});


Ни один не работает
    


Ответы

Ответ 1



после перезагрузки страницы нажалась ссылка Во-первых, выражение setTimeout(location.reload(),1000); бессмысленно, так как location.reload() вызывается сразу и ничего не возвращает, так что setTimeout через секунду [не]вызовет undefined, и проку от setTimeout никакого нет. Во-вторых, если предположить, что Вы хотели написать setTimeout(function(){location.reload();},1000); $('#link').trigger('click'); то $('#link').trigger('click'); вызывается раньше, чем location.reload(). Если уж следовать Вашей логике, то надо поменять их местами. И в-третьих, после перезагрузки страницы в ней может выполниться только код, который в ней (в новой странице) и вызван. success(function(data){ ...... localStorage.setItem("clickOnLink", "1"); location.reload();

Ответ 2



Он не заработает так как у вас в обоих кодах указано setTimeout(location.reload(),1000); это перезагружает страницу а после перезагрузки страницы, вы пытаетесь нажать на клавишу $('#link').trigger('click'); предлагаю подключить cookies function setCookie(name, value) { var date = new Date(new Date().getTime() + 60000); document.cookie = name + "=" + value + "; path=/" + url_alias + "; expires=" + date.toUTCString() } $(document).ready(function(){ $('form').validate({ ..... submitHandler: function(form) { $(form).ajaxSubmit( .... success(function(data){ ...... setCookie('click', '1'); setTimeout(function() {location.reload()}, 1000); }); ); } }); }); И дальше после перезагрузки страницы сравниваем значение cookie

Комментариев нет:

Отправить комментарий