@testtoster

Как запретить отправку запроса?

Есть такой запрос.
let form = document.querySelector('#form');

form.addEventListener('submit', function(evt) {
	evt.preventDefault();

	let formData = {
		name: document.querySelector('input[name="name"]').value,
		phone: document.querySelector('input[name="phone"]').value,
		email: document.querySelector('input[name="email"]').value,
		textarea: document.querySelector('textarea[name="textarea"]').value,
	};

	var request = new XMLHttpRequest();

	request.addEventListener('load', function() {
		alert('Ваша заявка успешно отправлена!');
		form.innerHTML = '<h2 class="form__height">Спасибо за заявку!</h2>';
	});

	request.open('POST', './mail.php', true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	request.send('name=' + encodeURIComponent(formData.name) + '&phone=' + encodeURIComponent(formData.phone) + '&email=' + encodeURIComponent(formData.email) + '&textarea=' + encodeURIComponent(formData.textarea) );
});


Хочу сделать защиту от спама через создание скрытого пустого поля те если скрытое поле пустое, то запрос отправляется, а если скрытое поле заполнено, то запрос не отправляется. Скажите, как правильно такое сделать?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
form.addEventListener('submit', function(evt) {
  evt.preventDefault();

  // ничего не делаем
  if (document.querySelector('#hidden').value) return

  let formData = {
    name: document.querySelector('input[name="name"]').value,
    phone: document.querySelector('input[name="phone"]').value,
    email: document.querySelector('input[name="email"]').value,
    textarea: document.querySelector('textarea[name="textarea"]').value,
  };

  var request = new XMLHttpRequest();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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