Назад

HTML формы. Все типы полей input, cписки, кнопки и многострочные поля

HTML формы — это фундаментальный инструмент для любого веб-разработчика, обеспечивающий двустороннее взаимодействие между пользователем и сайтом. Без них были бы невозможны вход в личный кабинет, регистрация, отправка комментариев, оформление заказов и многие другие функции. Понимание всех нюансов создания форм является ключевым навыком в фронтенд-разработке.

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

Тег <form>: Контейнер для данных

Тег <form> является корневым элементом любой формы. Он определяет, как и куда будут отправляться данные, введенные пользователем.

<form action="/submit" method="post" name="feedback" enctype="multipart/form-data">
    <!-- Поля формы будут здесь -->
</form>

Тег <input>

Тег <input> — это самый распространенный и гибкий элемент формы. Его ключевая особенность — атрибут type, который кардинально меняет поведение и внешний вид поля.

text
number
email
tel
password
url
search
hidden
range
color
file
reset
image
submit
Значение по умолчанию. Текстовое поле. Предназначено для ввода текста, символов и чисел
Определяет поле для ввода чисел. Помимо чисел также допускаеться указывать минус и точку для дробных чисел
Определяет поле для адреса электронной почты
Определяет поле для ввода телефонного номера
Определяет поле для ввода пароля. При вводе в поле выводятся замаскированные символы
Определяет поле для ввода URL-адреса
Определяет текстовое поле для ввода строки поиска
Определяет скрытое поле
Ползунок предназначен для ввода чисел в указанном диапазоне
Генеррует палитру цветов, давая возможность пользователям выбирать значения цветов в шестнадцатеричном формате
Определяет элемент управления с кнопкой "Обзор", для выбора и загрузки файлов
Определяет кнопку сброса, которая сбрасывает все поля формы в значения по умолчанию
Определяет кнопку для отправки формы. Данный тип применяется, когда Вам необходимо вывести кнопку в виде изображения. Вы можете использовать атрибут src для добавления изображения, которое и будет отображаться как кнопка
Определяет кнопку для отправки формы. Вы можете использовать атрибут value для изменения текста кнопки
<input type="text">

Поля даты и времени

Большинство элементов формы выводятся с помощью одного тега input. Различие полям задается с помощью значения атрибута type. Атрибут type сообщает браузеру, к какому типу относится элемент формы. В зависимости от указанного значения задает какой вид примет поле ввода. По умолчанию имеет значение — text

date
time
datetime-local
week
month
Поле для ввода даты. Также позволяет получить доступ к встроенному в браузер виджету выбора даты. Чтобы установить значение поумолчанию, необходимо в атрибут value указать дату в следующем формате (гггг-мм-дд)
Поле для выбора времени. Допускает ввод значений в 24-часовом формате, например: 12:34
Поле для выбора даты и времени. Определяет элемент управления датой и временем (год, месяц, день, час, минуты, секунды и доли секунды)
Позволяет выбрать одну неделю, после чего обеспечит ввод данных в формате года и недели (например: 2014-W15)
Позволяет выбрать один месяц, после чего обеспечит ввод данных в виде года и месяца (например: 2014-05)
<input type="date">

Радио кнопки (radio) и чекбоксы (checkbox)

Большинство элементов формы выводятся с помощью одного тега input. Различие полям задается с помощью значения атрибута type. Атрибут type сообщает браузеру, к какому типу относится элемент формы. В зависимости от указанного значения задает какой вид примет поле ввода. По умолчанию имеет значение — text

radio
checkbox
Переключатели (радиокнопки) используют, когда необходимо выбрать один единственный вариант из нескольких предложенных. Заметьте, что в данном примере значение атрибута name для всех переключателей одинаково, именно в таком случае браузер понимает, что переключатели связаны между собой и помечает только один пункт из предложенных. Значение атрибута value же должно различаться, чтобы обработчик формы мог понять, какой вариант выбран пользователем.
Флажки (чекбоксы) используют, когда необходимо выбрать любое количество вариантов из предложенного списка
<label>
    <input type="radio" name="lenguage" />
    HTML и CSS
</label>
<label>
    <input type="radio" name="lenguage" />
    JavaScript
</label>
<label>
    <input type="radio" name="lenguage" />
    React
</label>

Тег <select>: Раскрывающийся список для выбора

Тег <select> создает раскрывающийся список (дропдаун) или список с множественным выбором, позволяя пользователю выбрать один или несколько вариантов из заранее определенного набора. Это идеальный элемент для полей с фиксированным набором значений, таких как выбор страны, города, категории товара или любого другого предопределенного параметра. Сам по себе <select> бесполезен. Внутри него обязательно должны располагаться теги <option>, которые определяют элементы списка. Тег <option> может содержать следующие атрибуты: value: Самое важное. Это значение, которое будет отправлено на сервер, если данный вариант выбран. Если атрибут value не указан, на сервер отправится текстовое содержимое тега. selected - булевый атрибут, помечает вариант выбранным по умолчанию. disabled - делает конкретный вариант недоступным для выбора.

<select>
    <option value="" selected>Выбрать</option>
    <option value="HTML и CSS">HTML и CSS</option>
    <option value="JavaScript">JavaScript</option>
    <option value="React" disabled>React</option>
</select>

Тег <textarea>: Многострочное текстовое поле

Используется для ввода большого объема текста: комментарии, отзывы, сообщения.

<textarea rows="5" cols="50" placeholder="Введите текст" maxlength="500"></textarea>

Тег <button> для отправки формы

Тег <button> является более гибкой альтернативой <input type="submit">. Внутри него можно размещать не только текст, но и другие HTML-элементы (например, изображения или иконки).

<button type="submit">Отправить</button>

Заключение

Владение арсеналом HTML-форм — это обязательное условие для создания по-настоящему интерактивных и полезных веб-сайтов. От простого текстового поля до сложных элементов выбора даты и файлов — каждый элемент играет свою важную роль. Комбинируя эти теги и их атрибуты, вы сможете разрабатывать интуитивно понятные и эффективные интерфейсы для сбора любой информации от ваших пользователей. Не забывайте о семантике, доступности и встроенной браузерной валидации, чтобы сделать процесс заполнения форм максимально комфортным.