Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Поставить задержку к отправке сообщения (https://javascript.ru/forum/jquery/38139-postavit-zaderzhku-k-otpravke-soobshheniya.html)

tai 21.05.2013 09:43

Поставить задержку к отправке сообщения
 
Добрый день!!! Подскажите как можно поставить задержку на отправку сообщения.

Вот код, который отвечает за проверку полей.

$(document).ready(function(){
	
	var regV1 = /[0-9]/;
	$('#f1').submit(function(eventObject) {
		if ($('#text1').val() == "") {
			eventObject.preventDefault();
			$('#p1').css('display', 'block');
			$('#p2').css('display', 'none');
			$('#p3').css('display', 'none');
		}
		else if ($('#text2').val() == "") {
			eventObject.preventDefault();
			$('#p2').css('display', 'block');
			$('#p1').css('display', 'none');
			$('#p3').css('display', 'none');
		}
		else if ($('#text2').val().search(regV1) == -1) {
			eventObject.preventDefault();
			$('#p3').css('display', 'block');
			$('#p1').css('display', 'none');
			$('#p2').css('display', 'none');
		}
		else{
			$('#cowert').fadeOut();
			$('#cowert24').fadeIn().delay(1000).fadeOut(500);
		}
	});
	
	
});



$('#cowert').fadeOut(); - скрывается основные поля и кнопка
$('#cowert24').fadeIn().delay(1000).fadeOut(500); - появляется сообщение об успешной отправке сообщения

Именно здесь нужно сделать задержку, чтобы пользователь смог прочитать данное сообщение


Как это можно сделать???

ksa 21.05.2013 09:57

Цитата:

Сообщение от tai
появляется сообщение об успешной отправке сообщения

Куда делается submit формы?
Поскольку что-то написать на текущей странице можно только "до" отправки формы. Когда пойдет сама отправка ты теряешь управление и его принимает страница, указаная в action формы.

tai 21.05.2013 11:12

Обработчик на той же странице, поэтому и нужна задержка перед отправкой сообщения

<form action="" id="f1" method="post" name="f1">
		  <span id="cowert">
			<span id="close"><img src="<?=SITE_TEMPLATE_PATH?>/fancybox/fancy_close.png"></span>
			<input id="texter" type="text" name="names" />
			<p>Ваш имя: <span id="zvd">*</span><br /><input id="text1" type="text" name="name" /></p>
			<p id="p1">Введите имя</p>
			<p>Телефон: <span id="zvd">*</span><br /><input id="text2" type="text" name="phone" /></p>
			<p id="p2">Введите телефон</p>
			<p id="p3">Только цифры</p>		
			<p>Тема обращения: <br /><input id="text3" type="text" name="theme" /></p>
			<input id="shg1" name="shg1" type="submit" value="Отправить"/>	
		  </span>
		  <span id="cowert24">
			<p>Ваше сообщение успешно отправлено</p>
		  </span>
		</form>

ksa 21.05.2013 13:00

Цитата:

Сообщение от tai
поэтому и нужна задержка перед отправкой сообщения

Но данные при этом таки не будут отправлены... :)

tai 21.05.2013 14:08

Цитата:

Но данные при этом таки не будут отправлены...
Почему не будут???

Я только html-код привел. Там еще php-обработчик есть, все сообщения доходят

В php-код поставил функцию sleep(3); но все же хотелось бы сделать задержку именно на jQuery

bes 21.05.2013 23:31

не ответом ли на отправленное сообщение (запрос) должны прийти данные об её успешной/неуспешной отправке
к чему такие выкрутасы, не хочешь юзать ajax, отправляй в скрытый фрейм

ksa 22.05.2013 08:45

Цитата:

Сообщение от tai
Почему не будут?

Они отправятся только после submit(). А у тебя там же выводится сообщение... :)


Часовой пояс GMT +3, время: 14:29.