@del993788

Почему код выполняется 2 раза, когда я допустил ошибку?

Здравствуйте. Есть вот такой код
$("#submit").click(function(){
$("#submit").addClass("none"); 
$(document).ready(function(){ 
	$('#feedback').submit(function(e){ 
		e.preventDefault(); 
		var form = $(this);
		var data = form.serialize(); 
		if($('#number').val().length == 0){ // Проверка заполненности поля. 
$("#submit").val('ОШИБКА.Укажите телефон');
setTimeout(function(){$('#submit').val('Отправить заявку')}, 3000);
}else {
		$.ajax({
            url: "https://docs.google.com/forms/d....",
            data: data,
            type: "POST", 
            dataType: "xml",
            statusCode: { 
                200: function (){ 
$("#submit").val('Ошибка google. fatal error');
                },
                0: function (){
$("#submit").val('Заявка отправлена');
                }

            }
		});
	};
});
});
});


Короче говоря, такой прикол:
1) Если ввести в поле #number текст, то форма отправиться один раз.
2) Если не вводить текст, то появиться ошибка, затем, если ввести текст в поле и нажать отправить, то письмо отправиться дважды.
Почему? И как это можно исправить?
  • Вопрос задан
  • 500 просмотров
Пригласить эксперта
Ответы на вопрос 2
zolt85
@zolt85
Программист
Мда. Типичная jQuery-лапша. А зачем вы $(document).ready() завернули в $("#submit").click() ? Попробуйте вынести его.
Ответ написан
Комментировать
@mikediam
Web development
Уберите document ready - это событие готовности документа и никак не нужно делать этой проверки при отправке. Если происходит отправка, документ стало быть уже готов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы