Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Sumbit и окно успешной оправки (https://javascript.ru/forum/events/43670-sumbit-i-okno-uspeshnojj-opravki.html)

boot78 16.12.2013 13:13

Sumbit и окно успешной оправки
 
Проблема вот в чём не получается зацепить к кнопки отправки письма действие что бы лайтбокс окно открывалось после отправки письма на емаил.

вообщем выкладываю сам код
<head>
<script type="text/javascript">
$(function(){

$('#indexForm1').bind('submit', function(){
var form = $(this);

$.ajax({
type: "POST",
url: "./feddbek.php",
data: form.serialize(),
success: function(returnedInfo){

$.fancybox({
'type': 'ajax',
'href': './ok.html',
'width': '360',
'height': '340',
});

}
});

return false;

});

});
</script>


<body>
<form name="Form2" method="post" action="./feddbek.php" enctype="multipart/form-data" accept-charset="UTF-8" id="indexForm1" onsubmit="return ValidateForm2(this)">

<input type="hidden" name="Заказ со скидкой" value="35%">
<input type="text" id="indexEditbox1" name="Имя" value="" placeholder=" Введите имя">
<input type="text" id="indexEditbox2" name="Емаил" value="" placeholder=" Емаил">
<input type="text" id="bigEditbox1" name="Телефон" value="" placeholder=" Телефон">


<input type="submit" class="btn big" id="indexButton2" name="" value="Заказать звонок" style="">
</form>



Подскажите как вызвать это окно после отправки письма.

Rise 16.12.2013 14:24

Цитата:

Сообщение от boot78 (Сообщение 286973)
Подскажите как вызвать это окно после отправки письма.

Оно вызывается...

boot78 16.12.2013 14:30

Да но когда отправляеш пустую форму оно тоже вызывается. я могу показать пример где на сайте стоит оно и как криво работает

boot78 16.12.2013 14:49

<script type="text/javascript">
function ValidateForm2(theForm)
{
   var regexp;
   regexp = /^[A-Za-zAAAAAA?CEEEEIIII?NOOOOOOUUUUY??aaaaaa?ceeeeiiii?noooooouuuuy?yЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮЁёйцукенгшщзхъфывапролджэюбьтимсчя]*$/;
   if (!regexp.test(theForm.indexEditbox1.value))
   {
      alert("Введите имя");
      theForm.indexEditbox1.focus();
      return false;
   }
   if (theForm.indexEditbox1.value == "")
   {
      alert("Введите имя");
      theForm.indexEditbox1.focus();
      return false;
   }
   regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
;
   if (!regexp.test(theForm.indexEditbox2.value))
   {
      alert("Введите емаил");
      theForm.indexEditbox2.focus();
      return false;
   }
   if (theForm.indexEditbox2.value == "")
   {
      alert("Введите емаил");
      theForm.indexEditbox2.focus();
      return false;
   }
    regexp = /^[0-9-123456789+0]*$/;
   if (!regexp.test(theForm.bigEditbox1.value))
   {
      alert("Введите телефон");
      theForm.bigEditbox1.focus();
      return false;
   }
   if (theForm.bigEditbox1.value == "")
   {
      alert("Введите телефон");
      theForm.bigEditbox1.focus();
      return false;
   }
   return true;
}
</script>


Вот проверка на пустоту, но после нажатия на ок вылазиет окно
надо запускать вывод окна только после отправки формы
запускать вывод формы надо после получения ответа от сервера

А как это сделать я ума не преложу

Rise 16.12.2013 15:41

Цитата:

Сообщение от boot78 (Сообщение 286990)
regexp = /^[A-Za-zAAAAAA?CEEEEIIII?NOOOOOOUUUUY??aaaaaa?ceeeeiiii?noooooouuuuy?yЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮЁёйцукенгшщзхъфывапролджэюбьтимсчя]*$/;

Что это за regexp такой? Что он проверяет? :blink:

boot78 16.12.2013 15:42

имя

Rise 16.12.2013 15:48

Цитата:

Сообщение от boot78 (Сообщение 287024)
имя

А какое правило ввода для имени? По regexp я только понял что у вас клавиши залипают...

Rise 16.12.2013 17:26

boot78,
<form name="order" method="post" action="./feedback.php">
	<input type="hidden" name="discount" value="35%">
	<input type="text" name="name" placeholder="Имя">
	<input type="text" name="email" placeholder="Email">
	<input type="text" name="phone" placeholder="Телефон">
	<input type="submit" value="Заказать звонок">
</form>

<script>
$(function() {
	$('form[name=order]').submit(function() {
		if (validateForm(this)) {
			$.ajax({
				type: this.method,
				url: this.action,
				data: $(this).serialize(),
				success: function() {
					$.fancybox({
						'type': 'ajax',
						'href': './ok.html'
					});
				}
			});
		}
		return false;
	});
});
function validateForm(theForm) {
	var regexp = /^[a-zёа-я]{3,20}$/i;
	if (!regexp.test(theForm.name.value)) {
		alert('Некорректное имя (от 3 до 20 букв)');
		theForm.name.focus();
		return false;
	}
	regexp = /^([\w-]+\.)*[\w-]+@[\w-]+(\.[\w-]+)*\.[a-z]{2,6}$/i;
	if (!regexp.test(theForm.email.value)) {
		alert('Некорректный адрес электронной почты');
		theForm.email.focus();
		return false;
	}
	regexp = /^[0-9]{7,16}$/;
	if (!regexp.test(theForm.phone.value)) {
		alert('Некорректный номер телефона (от 7 до 16 цифр)');
		theForm.phone.focus();
		return false;
	}
	return true;
}
</script>

boot78 16.12.2013 21:56

Щас буду пробывать. А ещё вопрос а если форма ни одна на странице?

boot78 18.12.2013 04:28

Проверил. ситуация такая. Жму в пустую форму выбивает некоректное имя.
Заполняю имя жму отправить проверка на пустой телефон не срабатывает , отправляется заявка без телефона и окно успеха открывается в новой вкладке а не в всплывающем окне (фенсибокс)


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