Как сделать задержку отправки формы на javascript?
Добрый день:) . Не работают таймеры:( :
<script type="text/javascript"> function checkForm() { return_value = true; if() // какое-то условие { return_value = false; } if (return_value==true) { window.setTimeout(thanks,3000); // Почему-то форма отправляется сразу, а не ждёт окончания работы таймеров. страница сразу обновляется window.setTimeout(ishod,13000); } return return_value; } </script> <form onsubmit="return checkForm()"> ... </form> Как сделать задержку отправки формы???? Уже второй день бьюсь. |
Akimserg, setTimeout не останавливает полностью скрипт, просто код после него дальше проходит сразу же, а после пройденного времени уже срабатывает скрипт.
|
ага понятно, это разъясняет ситуацию. Только я всё равно не пойму, как сделать задержку.
|
Отменить отправку формы, потом отправить её самостоятельно в нужное время.
|
Kolyaj,
Я воспользовался вашим советом: <form name="forma" action="" method="get" onSubmit="gosend(); return false"> // в событии onSubmit я вызываю функцию и отменяю отправку. <input class="btn" name="submit" onClick="" value="" type="submit"> </form> Тепер в функции gosend() хочу отправить форму с задержкой в 2 секнды: function gosend() { setTimeout(function(){document.forma.submit();},2000); } Но ничего не присходит. А вот если посылать без таймера т. е. вот так: function gosend() { document.forma.submit(); } то форма отправляется, только, соответственно без задержки. В чём проблема не пойму.... |
Потому что при вызове метода submit срабатывает событие submit, которое вы отменяете. Выставляйте где-нибудь флаг, чтобы в обработчике знать, отменять событие или нет.
|
решил проблему так:
<form id="myForm" name="forma" action="" method="get" onSubmit=""> //обработчиком onSubmit не стал пользоваться .... <input class="btn" onClick="checkForm()" value="" type="button"> //Вызвал функцию через onClick </form> А в функции: function checkForm() { setTimeout('document.forma.submit()',6000); //задерка } Спасибо за внимание)))) |
Форму можно отправить не только кликом по кнопке, так что плохой вариант.
|
Не понял. Что плохого в этом варианте?
|
Цитата:
|
Часовой пояс GMT +3, время: 18:58. |