Javascript.RU

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

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

Как сделать так, чтобы при сообщении об ошибке ввода каптчи поля не очищались?

Это часть кода, где записана функция очистки формы:
jQuery.ajax({
		url: "mail.php",
		type: "POST",
		data: 'name=' + name + '&email=' + email + '&subject=' + subject + '&message=' + message + '&verify=' + verify,
		success:function(data){
			$("#info-status").html(data);
			$("#form-msgsend").delay(1000).fadeOut(3000);
			$("#form").trigger("reset");
			},
			error:function (){}
		});

Основной блок вывода информации, это /#info-status/
в /#form-msgsend/ выводится сообщение об успешной отправке данных (что там выводить прописано в php файле).
в /#error-captcha/ я вывожу сообщение о неверной каптче (сам текст тоже записан в php файле).
Как сделать так, чтобы при выводе /#error-captcha/ функция /$("#form").trigger("reset");/ не срабатывала, а работала только при выводе /#hrform-msgsend'/?
А то она постоянно срабатывает при обработке /#info-status/.

сроку /"$('#form-msgsend').delay(1000).fadeOut(3000);"/ в коде указал только для того, чтобы надпись об отправке сообщения исчезала, а так оба сообщения ( о неверно введенной каптче и об отправке данных ) выводятся если в коде есть только строка /$("#info-status").html(data);/.

Идентификаторы /#form-msgsend/ и /#error-captcha/ в HTML выводятся внутри блока /#info-status/

И если я указываю в коде рядом с /#info-status/ сроку /$("#form").trigger("reset");/, то reset срабатывает на все, что там отображается.

Подскажите, кто знает, как сделать так, чтобы /$("#form").trigger("reset");/ работала только при выводе /#form-msgsend/?
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2020, 10:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Формат общения сервера с клиентом сделать JSON. Если сервер вернет ошибку, то какую, ибо сервер не только каптчу должен проверять, а все данные, и вывод ее. При этом, если ошибка каптчи, то выводится сообщение и запрос на ее обновление. И только если сервер не вернул ошибку, вот тогда сброс формы.

Последний раз редактировалось laimas, 11.04.2020 в 10:26.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать подсветку при подсказке заполнения обязательной формы CSS? Espey Элементы интерфейса 13 25.06.2017 12:52
Как получить данные формы Moonlight Angular.js 0 24.10.2014 11:12
Как при обновлении страницы, сбросить атрибут disabled по умолчанию? Altai jQuery 6 17.04.2014 00:32
Выбор checkbox скриптом. Проблема при отправке формы. ByKraB jQuery 5 07.04.2013 19:43
Как при отправке формы по ссылке передать дополнительные значения? FRIE Общие вопросы Javascript 2 31.12.2011 19:06