Как сделать задержку отправки формы на 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); //задерка } Спасибо за внимание)))) |
Форму можно отправить не только кликом по кнопке, так что плохой вариант.
|
Не понял. Что плохого в этом варианте?
|
Цитата:
|
Это задержка непосредственно перед отправкой, т.е. мы заполняем форму, жмякаем кнопку, активируется таймер, таймер истекает и форма отправляется.
А как сделать таймер после отправки? Что бы кнопка лочилась на определенное время после отправки. |
tyu
|
tyu
|
| Часовой пояс GMT +3, время: 20:59. |