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

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

Войти через центр авторизации
Похожие вопросы