Перейти к основному содержимому

Формы HTML

Форма HTML используется для сбора ввода от пользователя. Введённые пользователем данные чаще всего отправляются на сервер, где они обрабатываются.

Пример

Простая форма с двумя текстовыми полями для имени и фамилии.

Prompt
Минимальная HTML-форма, собирающая пользовательский ввод с помощью двух однострочных текстовых полей с подписями "First name" и "Last name". Оставьте это простым HTML без стилизации и обработки отправки.
Output: полная HTML-страница

Элемент <form>

Элемент <form> используется для создания HTML-формы для пользовательского ввода.

Это контейнер, содержащий различные элементы ввода, такие как текстовые поля, флажки, переключатели и кнопки отправки. Все элементы формы рассмотрены в HTML Form Elements.

Структура формы

Пустой тег <form> с размещёнными внутри него элементами формы.

index.html
<form>
.
form elements
.
</form>

Элемент <input>

Элемент <input> — самый используемый элемент формы.

Он может отображаться по-разному в зависимости от атрибута type. Некоторые распространённые типы: text для однострочного текстового поля, radio для переключателя, позволяющего выбрать один из нескольких вариантов, checkbox для выбора нуля или более вариантов, submit для кнопки, отправляющей форму, и button для кликабельной кнопки.

Все типы input рассмотрены в HTML Input Types.


Текстовые поля

<input type="text"> создаёт однострочное поле для ввода текста.

Примечание: Сама форма невидима. Ширина текстового поля по умолчанию составляет около 20 символов.

Пример

Форма с текстовыми полями для имени и фамилии, каждое со своей меткой.

Prompt
Форма с двумя однострочными текстовыми полями для "First name" и "Last name". Используйте , привязанный к каждому с соответствующими for и id, и после каждого поля.
Output: полная HTML-страница

Элемент <label>

Тег <label> определяет метку для элемента формы.

Он помогает пользователям программ чтения с экрана, поскольку экранный диктор озвучивает метку при переходе пользователя к input. Он также помогает людям, которым сложно нажимать на очень маленькие области, такие как переключатели или флажки: клик по тексту метки переключает соответствующий элемент управления.

Чтобы связать метку с input, установите атрибут for метки равным атрибуту id input.


Переключатели (Radio Buttons)

<input type="radio"> создаёт переключатель. Переключатели позволяют пользователю выбрать только ОДИН вариант из небольшого набора.

Пример

Форма с переключателями для выбора одного любимого веб-языка. У них одинаковый name, поэтому можно выбрать только один.

Prompt
Форма, позволяющая пользователю выбрать любимый веб-язык с помощью переключателей для HTML, CSS и JavaScript. Все переключатели имеют общий name "fav_language", поэтому можно выбрать только один, у каждого своя подпись.
Output: полная HTML-страница

Флажки (Checkboxes)

<input type="checkbox"> создаёт флажок. Флажки позволяют пользователю выбрать НОЛЬ ИЛИ БОЛЬШЕ вариантов из набора.

Пример

Форма с тремя флажками, которые пользователь может независимо отмечать и снимать.

Prompt
Форма с тремя флажками, позволяющими пользователю выбрать ноль или несколько вариантов: "I have a bike", "I have a car", "I have a boat". У каждого флажка свой name, value, id и соответствующая подпись.
Output: полная HTML-страница

Кнопка отправки

<input type="submit"> создаёт кнопку, отправляющую данные формы обработчику формы.

Обработчик формы — это обычно файл на сервере со скриптом, обрабатывающим ввод. Вы задаёте его в атрибуте action формы.

Пример

Форма с кнопкой отправки, отправляющей данные на страницу, указанную в атрибуте action.

Prompt
Форма с текстовыми полями First name и Last name, предзаполненными "John" и "Doe", плюс кнопка отправки. Установите атрибут action формы на /action_page.php, чтобы кнопка отправки отправляла данные обработчику.
Output: полная HTML-страница

Атрибут Name для <input>

Каждое поле ввода должно иметь атрибут name, чтобы быть отправленным при отправке формы.

Если атрибут name отсутствует, значение этого поля вообще не отправляется.

Пример

Эта форма не отправит значение поля «имя», так как у этого input нет атрибута name.

Prompt
Форма, показывающая, почему важен атрибут name: текстовое поле First name без атрибута name, плюс кнопка отправки. Так как у поля нет name, его значение не будет отправлено при отправке формы. Установите атрибут action формы на /action_page.php.
Output: полная HTML-страница