Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать задержку отправки формы на javascript? 
:(
    Опции темы
Akimsir
Дата 10.1.2011, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



Добрый день. Не работают таймеры:

Код

<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>


Как сделать задержку отправки формы???? Уже второй день бьюсь. 
PM MAIL   Вверх
Amphiluke
Дата 10.1.2011, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Потому что в вашем случае функция checkForm всегда должна возвращать false. И лишь потом, внутри той ф-ции, на выполнение которой установлен таймер, нужно программно отправлять форму при помощи ее метода submit().
PM   Вверх
Akimsir
Дата 10.1.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.1.2011

Репутация: нет
Всего: нет



Спасибо за ответ. Я сделал так, упростил всё.

Код

<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();
         
    }


то форма отправляется, только, соответственно без задержки. В чём проблема не пойму....
PM MAIL   Вверх
Amphiluke
Дата 10.1.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Ваша ошибка в том, что вы дали кнопке submit свойство name="submit", т.е. одноименное с методом submit(). Поэтому код document.forma.submit() генерирует ошибку что submit — это не функция. Решение — переименовать кнопку submit, например,
Код

<input class="btn" name="sbmt" onClick="" value="" type="submit">

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0996 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.