Всё, что джуну нужно знать о теге input
- 28 августа 2025
Элемент <input>
— один из самых старых и фундаментальных в HTML. Ещё в HTML 2.0 (1995 год) существовали только базовые типы вроде text
, password
и checkbox
. Но по мере развития веба стало очевидно, что пользователям нужно вводить не только текст, а самые разные данные: email, телефоны, даты, цвета, числа. Так, начиная с HTML5 (2014 год), появились новые семантические типы <input>
, которые помогают браузеру лучше понимать контекст и давать пользователю удобные инструменты для ввода.
С января 2018 года все эти новые типы ввода находятся в статусе Widely Available в Baseline. Это значит, что их можно использовать без оглядки на совместимость: современные браузеры корректно поддерживают большинство сценариев.
Зачем нужны разные типы ввода
Разные типы <input>
позволяют:
- автоматически проверять правильность данных (например, email-адреса);
- показывать удобную клавиатуру на мобильных устройствах (например, для телефона или URL);
- упрощать доступность для пользователей и скринридеров;
- давать браузеру больше информации для автозаполнения.
Пример: email, телефон и URL
<form>
<label>Электронная почта: <input type="email" name="email" required></label><br>
<label>Телефон: <input type="tel" name="phone" required></label><br>
<label>Веб-сайт: <input type="url" name="website"></label>
</form>
email
проверяет наличие @
и домена, tel
показывает цифровую клавиатуру на мобильных устройствах, а url
требует корректного протокола и доменного имени.
Числа и диапазоны
<form>
<label>Возраст: <input type="number" min="0" max="120"></label><br>
<label>Оценка: <input type="range" min="0" max="10" step="1"></label>
</form>
Тип number
позволяет ввести только цифры и задавать ограничения, а range
превращает ввод в удобный ползунок.
Дата и время
<form>
<label>Дата рождения: <input type="date"></label><br>
<label>Время встречи: <input type="time"></label><br>
<label>Дата и время: <input type="datetime-local"></label><br>
<label>Месяц: <input type="month"></label><br>
<label>Неделя: <input type="week"></label>
</form>
Эти поля автоматически вызывают календарь или селектор времени. Раньше для этого приходилось писать сложный JavaScript-календарь, сегодня всё встроено в браузер.
Цвет
<label>Выберите цвет: <input type="color"></label>
Тип color
открывает палитру выбора цвета — раньше такие виджеты приходилось реализовывать вручную.
Пароль и поиск
<form>
<label>Пароль: <input type="password"></label><br>
<label>Поиск: <input type="search"></label>
</form>
password
скрывает вводимые символы, а search
оптимизирован для поиска (например, на iOS появляется кнопка «Очистить»).
Файлы и скрытые данные
<form>
<label>Загрузите файл: <input type="file"></label><br>
<input type="hidden" name="session_id" value="12345">
</form>
file
открывает диалог выбора файлов, а hidden
позволяет отправлять на сервер данные, не видимые пользователю.
Эволюция <input>
отражает путь развития веба: от простых форм до удобных и адаптивных интерфейсов. Современные типы полей решают сразу несколько задач — упрощают ввод, повышают доступность и делают сайты дружелюбнее для пользователей.
Освоив все возможности <input>
, вы сможете создавать формы, которые работают одинаково удобно и на компьютере, и на смартфоне, а браузер сам позаботится о проверках и подсказках.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.