Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2016, 17:24
Новичок на форуме
Отправить личное сообщение для yatsyk Посмотреть профиль Найти все сообщения от yatsyk
 
Регистрация: 12.10.2016
Сообщений: 3

Клик по кнопке срабатывает со второго раза, на почту приходит два одинаковых письма
Доброго времени суток! Хочу прикрутить на сайт форму обратной связи. Проблема в том, что при клике на кнопку скрипт отправки сообщения срабатывает со второго раза, после чего два раза всплывает оповещение об успешной отправке и на почту приходит два одинаковых письма. Если убрать валидацию формы то все отрабатывает нормально. Объясните пожалуйста в чем проблема и как ее можно решить?

Вот сам js-код:
// Валидация формы заявки (только там где jquery)
function validateShortForm(formid) {
	var forma = $('#'+formid),
			nameField	= $("input[name=name]", forma).val(),
			phoneField	= $("input[name=phone]", forma).val();

	if ($.trim(nameField).length == 0 || $.trim(nameField)=='Ваше имя') {
		alert("Представьтесь, пожалуйста.");
	} else if (($.trim(phoneField).length == 0) || ($.trim(phoneField)=='Телефон')) {
		alert("Пожалуйста, оставьте свой контактный телефон");
	}else{
			$(document).ready(function() {
		
			//E-mail Ajax Send
			$("form").submit(function() { //Change
				var th = $(this);
				$.ajax({
					type: "POST",
					url: "mail.php", //Change
					data: th.serialize()
				}).done(function() {
					alert("Спасибо за обращение, Ваша заявка принята. В ближайшее время мы с Вами свяжемся!");
					setTimeout(function() {
						// Done Functions
						th.trigger("reset");
					}, 1000);
				});
				return false;
			});
		
		});
	}
	return false;
}
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2016, 17:32
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

yatsyk,
зачем ты туда document.ready запихал?
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2016, 21:46
Новичок на форуме
Отправить личное сообщение для yatsyk Посмотреть профиль Найти все сообщения от yatsyk
 
Регистрация: 12.10.2016
Сообщений: 3

Сообщение от Coriolan161 Посмотреть сообщение
yatsyk,
зачем ты туда document.ready запихал?
Я новичок в теме, только начинаю изучать js. Признаюсь честно: взял два куска кода (валидации и отправки) и склеил их вместе. Просто очень срочно нужна рабочая форма поэтому и пришел к такому варианту, т.к. язык изучить не успею за это время. Можешь подсказать что именно нужно исправить в данном коде?

Последний раз редактировалось yatsyk, 12.10.2016 в 21:48.
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2016, 02:08
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

yatsyk,
Сообщение от yatsyk
что именно нужно исправить в данном коде
Удалить 12, 15, 16, 29, 31 строчки.
И в 20 и 25 строчке th. заменить на forma.
то есть так должно быть
data: forma.serialize() //20 строка

forma.trigger("reset"); //25 строка
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2016, 13:28
Новичок на форуме
Отправить личное сообщение для yatsyk Посмотреть профиль Найти все сообщения от yatsyk
 
Регистрация: 12.10.2016
Сообщений: 3

Bond, Спасибо вам большое, теперь все работает)

Последний раз редактировалось yatsyk, 13.10.2016 в 13:31.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему click срабатывает только со второго раза imedia Элементы интерфейса 2 25.08.2016 08:33
Скрипт срабатывает два раза AlphaSpec jQuery 4 16.09.2015 14:37
clearInterval срабатывает только со второго раза nikolayseo Firefox/Mozilla 3 08.12.2014 19:25
Клик по кнопке срабатывает со второго раза при первом действиии darmoid Общие вопросы Javascript 1 22.10.2014 16:45
Функция срабатывает два раза, а должна - один pevec1 Элементы интерфейса 1 03.03.2012 04:29