← Все вопросы
Простая проверка формы перед отправкой: как не дать отправить пустое поле?
7
Есть форма с полем «имя» и кнопкой. Хочу, чтобы при пустом поле форма не отправлялась, а показывалось сообщение. Как это сделать на JS для новичка?
2 ответа
12
✓ Принятый ответ — помог автору
Подпишись на событие submit формы и, если поле пустое, отмени отправку через event.preventDefault():
<form id="form">
<input id="name">
<button>Отправить</button>
<p id="error"></p>
</form>
const form = document.getElementById('form');
form.addEventListener('submit', function(event) {
const name = document.getElementById('name').value.trim();
if (name === '') {
event.preventDefault(); // не отправлять
document.getElementById('error').textContent = 'Введите имя!';
}
});
Два важных момента:
event.preventDefault()отменяет отправку формы (иначе страница перезагрузится);.trim()убирает пробелы по краям, чтобы строка из одних пробелов тоже считалась пустой.
5
Для самой базовой проверки можно вообще без JS — добавь атрибут required к полю:
<input id="name" required>
Браузер сам не даст отправить пустое поле и покажет подсказку. JS нужен, когда проверки сложнее (например, формат email или совпадение паролей).
Ваш ответ
Войдите, чтобы ответить на вопрос.