Тег <form>
Описание
Тег <form>
создает интерактивную форму для сбора и отправки пользовательских данных на сервер. Это контейнер для различных элементов ввода: текстовых полей, чекбоксов, радио-кнопок и других.
<form action="/login" method="POST">
<div>
<label for="username">Имя пользователя:</label>
<input type="text" id="username" name="username" required>
</div>
<div>
<label for="password">Пароль:</label>
<input type="password" id="password" name="password" required>
</div>
<button type="submit">Войти</button>
</form>
<form novalidate>
<label>
Email:
<input type="email" name="email"
pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" required>
</label>
<label>
Телефон:
<input type="tel" name="phone"
pattern="[\+]\d{1}\s[\(]\d{3}[\)]\s\d{3}[\-]\d{2}[\-]\d{2}"
placeholder="+7 (123) 456-78-90">
</label>
<input type="submit" value="Отправить">
</form>
<form id="feedback-form">
<input type="text" name="name" placeholder="Ваше имя" required>
<textarea name="message" placeholder="Сообщение" required></textarea>
<button type="submit">Отправить</button>
</form>
<script>
document.getElementById('feedback-form').addEventListener('submit', function(e) {
e.preventDefault();
fetch('/api/feedback', {
method: 'POST',
body: new FormData(this)
})
.then(response => alert('Успешно отправлено!'))
.catch(error => alert('Ошибка: ' + error));
});
</script>
Современные практики:
- Всегда связывайте
<label>
с полями ввода - Используйте семантические типы
input
(email, tel, number) - Добавляйте атрибуты валидации (required, pattern, min/max)
- Для файлов указывайте
enctype="multipart/form-data"
- Реализуйте доступность (ARIA-атрибуты, клавиатурная навигация)
Тег <form>
является основным инструментом создания интерактивных веб-интерфейсов для взаимодействия с пользователями.
Атрибуты
accept | Список MIME-типов для загрузки (устарел) |
accept-charset | Кодировки символов для формы |
action | URL для отправки формы |
autocomplete | Включает автозаполнение полей |
enctype | Способ кодирования данных |
method | HTTP-метод отправки (GET/POST) |
name | Имя формы |
novalidate | Отключает валидацию |
target | Где открывать ответ |
accesskey | Горячая клавиша для активации |
class | CSS-классы для стилизации |
id | Уникальный идентификатор |
style | Инлайновые CSS-стили |
title | Всплывающая подсказка |
Поддержка браузерами
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
3.0 | 1.0 | 4.0 | 1.0 | 1.0 |