muhammadislom
@muhammadislom
PHP Laravel

Как отправить форму на почту submit не работает?

Доброго времени.
Пытался сделать вот такую форму точнее красный текст внизу input.
5f623f3717708353269126.png
Нашол данный пример https://codepen.io/FlorinPop17/pen/OJJKQeK?editors=1000.
Всё ок работает но после того как поставил js код submit перестал работать. Точнее если даже все инпуты зелёные форма всё равно не отправляется.
Вот код.
form.addEventListener('submit', e => {
	e.preventDefault();
	
	checkInputs();
});
function checkInputs() {
	// trim to remove the whitespaces
	const usernameValue = username.value.trim();
	const usertelValue = usertel.value.trim();
	
	if(usernameValue === '') {
		setErrorFor(username, 'ERROR');
	} else {
		setSuccessFor(username);
	}
	if(usertelValue === '') {
		setErrorFor(usertel, 'ERROR');
	} else {
		setSuccessFor(usertel);
	}
}

function setErrorFor(input, message) {
	const formControl = input.parentElement;
	const small = formControl.querySelector('small');
	formControl.className = 'form-control error';
	small.innerText = message;
}

function setSuccessFor(input) {
	const formControl = input.parentElement;
	formControl.className = 'form-control success';
}

<code lang="php">
					<form class="formClass form" method="POST" id="form"  action="mailer/smart">
						<div class="formInput">
							<label for="username">Имя</label>
							<input type="text" placeholder="Имя" name="user_name" id="username" />
							<small></small>
						</div>
						<div class="formInput">
							<label for="username">Телефон</label>
							<input type="text" placeholder="Телефон" name="user_name" id="usertel" />
							<small></small>
						</div>
						<div class="formInput">
							<label for="username">Сообщение</label>
							<textarea placeholder="Сообщение" name="user_messages" id="messages"></textarea>
						</div>

						<button type="submit">Отправить</button>
						<!-- <button>Submit</button> -->
					</form>
</code>

Можете подсказать что нужно исправить в js.
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
Psixodelik
@Psixodelik
Преподаватель на Hexlet
Передавай скрипту данные сам. У тебя событие отменяется при клике:

form.addEventListener('submit', e => {
  e.preventDefault();
  
  checkInputs();
});


e.preventDefault(); отменяет стандартные события клика. Соответственно форма никуда не отправляет данные. После всех проверок используй https://developer.mozilla.org/ru/docs/Web/API/HTML...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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