Обратный отсчет JQuery останавливается при загрузке отправки формы - PullRequest
0 голосов
/ 07 августа 2011

Утро всем - у меня есть страница, которая отправляет форму при загрузке страницы и перенаправляет пользователя на другой сайт.Ответ с другого конца может быть немного медленным, поэтому я создал эту страницу с поддельным индикатором прогресса загрузки, чтобы успокоить пользователей.Для дальнейшей уверенности я хотел добавить сообщение обратного отсчета, говорящее «Вы должны быть перенаправлены на X через Y секунд».

Я использовал этот пример JQuery, который обновляет элемент с идентификатором «обратный отсчет» с текущим номером.

{$(function(){
  var count = 7;
  countdown = setInterval(function(){
    $("#countdown").html(count);
    if (count == 0) {
        clearInterval(countdown);
        $('#countdown_container').html("If you seem to be stuck <a href='javascript:the_form.submit();'>click here</a> to try again.");
    }
    count--;
  }, 1000);
});}

Я ожидал, что перенаправление произойдет до того, как обратный отсчет достигнет 0. К сожалению, я обнаружил, что скрипт фактически останавливает отправку формы до тех пор, пока он не завершит работу .. Дох!Кто-нибудь может предложить какой-нибудь способ обойти это?

Спасибо!


Чуть позже:

Просто чтобы уточнить после вопроса Правина, у меня нормальная форма на том жестраница с методом post и различными скрытыми входными данными, содержащими данные для размещения на другом сайте.В теге body моей страницы у меня есть оператор onload, отправляющий эту форму, например, onLoad = "document.forms ['the_form']. Submit ()".(Я понимаю, что это, вероятно, лучше сделать в событии загрузки JQuery.)

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Вы всегда можете отправить заявку используя $ .get или $ .post Затем, когда обратный вызов запущен, вы можете перенаправить или сделать, как вам нравится. Выполнение этого вручную таким образом дает вам больше контроля над тем, что делать с возвращенными данными. и если вы хотите перенаправить на другую страницу после.

//html    
<input type="text" name="firstname" value="some text" />

//jquery
$.get("mypage.php", { firstname: $("input [name=firstname]").first().val() },function(data){
//redirect, show popup, do as you like since the form has been submitted
//data contains the results that were printed
});
0 голосов
/ 07 августа 2011

Я прочитал этот вопрос 3 раза и до сих пор не понял его.

Также я не нашел ни одного кода перенаправления или другого механизма для перенаправления (вы сказали I expected that the redirect..)

Я также не нашел код отправки, вы сказали script actually stops submission...

Я думаю, что вы должны показать больше или объяснить больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...