Многие начинающие верстальщики ограничиваются required, type="email" и pattern="". Это удобно, но часто недостаточно. Гибкая валидация требует JavaScript.
Простой пример валидации email
HTML:
<form id="myForm">
<input type="email" name="email" placeholder="Введите email" required />
<button type="submit">Отправить</button>
</form>
JS:
const form = document.getElementById("myForm");
form.addEventListener("submit", (e) => {
e.preventDefault();
const emailInput = form.email;
const email = emailInput.value;
if (!email.includes("@") || !email.includes(".")) {
alert("Пожалуйста, введите корректный email");
emailInput.focus();
return;
}
alert("Форма успешно отправлена");
form.reset();
});Варианты валидации
1. HTML-проверка через pattern:
<input type="text" pattern="[A-Za-z]{3,}" title="Только латиница, минимум 3 буквы">2. JS: input.validity
js
if (!emailInput.validity.valid) {
alert("Некорректный email");
}3. JS: setCustomValidity()
emailInput.setCustomValidity("Пожалуйста, проверьте email");Работает только с формами, которые потом отправляются нативно (form.submit() без preventDefault).
Дополнительные советы
Используй trim() при проверке, чтобы убрать пробелы.
Проверяй не только email, но и пароли, телефоны, checkbox'ы.
Добавляй визуальные подсказки (цвета, сообщения).
Почему это важно?
Плохая валидация = сломанные формы, негативный UX и ошибки на бэке.
Хорошая валидация:
- помогает пользователю
- экономит время
- делает интерфейс понятным
#js | #полезности
