Spec-Zone.ru › HTML

<input>: Элемент ввода (элемент формы)

Элемент <input> HTML используется для создания интерактивных элементов управления для веб-форм, чтобы принимать данные от пользователя; доступно множество типов входных данных и виджетов управления, в зависимости от устройства и браузера. Элемент <input> является одним из самых мощных и сложных во всем HTML из-за большого количества комбинаций типов ввода и атрибутов.

Попробуйте

Типы <input>

Функционирование элемента <input> существенно зависит от значения его атрибута type, поэтому различные типы описаны на отдельных страницах справочника. Если этот атрибут не указан, по умолчанию используется text.

Доступные типы:

Тип Описание Основные примеры
button Кнопка с нажатием без заданного поведения, отображающая значение атрибута value, по умолчанию пустое.
checkbox Флажок, позволяющий выбирать/снимать выбор одиночных значений.
color Элемент управления для задания цвета; открывает цветовой пикер при активации в поддерживающих браузерах.
date Элемент управления для ввода даты (год, месяц и день без времени). При активации в поддерживающих браузерах открывается календарь выбора даты или цифровые колесики для года, месяца и дня.
datetime-local Элемент управления для ввода даты и времени без часового пояса. При активации в поддерживающих браузерах открывается календарь выбора даты и времени или цифровые колесики для элементов даты и времени.
email Поле для редактирования адреса электронной почты. Выглядит как text поле ввода, но имеет параметры валидации и соответствующую раскладку клавиатуры в поддерживающих браузерах и устройствах с динамическими клавиатурами.
file Элемент управления, позволяющий пользователю выбрать файл. Используйте атрибут accept для определения типов файлов, которые может выбрать элемент управления.
hidden Элемент управления, который не отображается, но значение которого отправляется на сервер. В следующей колонке есть пример, но он скрыт!
image Графическая submit кнопка. Отображает изображение, определенное атрибутом src. Атрибут alt отображается, если изображение по атрибуту src отсутствует.
month Элемент управления для ввода месяца и года без часового пояса.
number Элемент управления для ввода числа. Отображает спиннер и добавляет стандартную валидацию. Отображает цифровую клавиатуру на некоторых устройствах с динамическими клавиатурами.
password Однострочное текстовое поле, значение которого скрыто. Выведет предупреждение пользователю, если сайт не защищен.
radio Радиокнопка, позволяющая выбрать одно значение из нескольких вариантов с одинаковым значением атрибута name.
range Элемент управления для ввода числа, точное значение которого не имеет значения. Отображается как ползунок по умолчанию, со значением по центру. Используется в сочетании с атрибутами min и max для определения диапазона допустимых значений.
reset Кнопка, которая сбрасывает содержимое формы до значений по умолчанию. Не рекомендуется.
search Однострочное текстовое поле для ввода поисковых запросов. Переводы строк автоматически удаляются из значения ввода. Может содержать значок удаления в поддерживающих браузерах, который можно использовать для очистки поля. В некоторых устройствах с динамическими клавиатурами отображается значок поиска вместо клавиши ввода.
submit Кнопка, которая отправляет форму.
tel Элемент управления для ввода номера телефона. В некоторых устройствах с динамическими клавиатурами отображается телефонная клавиатура.
text Значение по умолчанию. Однострочное текстовое поле. Переводы строк автоматически удаляются из значения ввода.
time Элемент управления для ввода значения времени без часового пояса.
url Поле для ввода URL-адреса. Выглядит как text поле ввода, но имеет параметры валидации и соответствующую раскладку клавиатуры в поддерживающих браузерах и устройствах с динамическими клавиатурами.
week Управление для ввода даты, состоящей из номера недели и года без часового пояса.
Устаревшие значения
datetime Устаревший Управление для ввода даты и времени (час, минута, секунда и доля секунды) на основе часового пояса UTC.

Атрибуты

Элемент <input> настолько мощный благодаря своим атрибутам; атрибут type, описанный с примерами выше, является самым важным. Поскольку каждый элемент <input>, независимо от типа, основан на интерфейсе HTMLInputElement, они технически имеют точно такой же набор атрибутов. Однако на самом деле большинство атрибутов влияют только на определенный подмножество типов ввода. Кроме того, способ, которым некоторые атрибуты влияют на ввод, зависит от типа ввода, влияя на разные типы ввода по-разному.

Этот раздел содержит таблицу, перечисляющую все атрибуты с кратким описанием. За ней следует список, описывающий каждый атрибут более подробно, а также типы ввода, к которым они относятся. Те, которые распространены для большинства или всех типов ввода, определены более подробно ниже. Атрибуты, уникальные для определенных типов ввода, или атрибуты, которые общие для всех типов ввода, но имеют специальное поведение при использовании с определенным типом ввода, вместо этого документированы на страницах этих типов.

Атрибуты для элемента <input> включают в себя глобальные HTML-атрибуты и дополнительно:

Атрибут Тип(ы) Описание
accept file Подсказка для ожидаемого типа файла в элементах управления загрузкой файлов
alt image Атрибут alt для типа изображения. Требуется для доступности
autocapitalize все, кроме url, email, и password Управление автоматическим прописным регистром введенного текста.
autocomplete все, кроме checkbox, radio, и кнопок Подсказка для функции автоматического заполнения формы
capture file Метод захвата медиа в элементах управления загрузкой файлов
checked checkbox, radio Выбрано ли команда или элемент управления
dirname hidden, text, search, url, tel, email Имя поля формы, используемого для отправки направленности элемента при отправке формы
disabled все Отключен ли элемент управления формой
form все Связывает элемент управления с элементом формы
formaction image, submit URL для использования при отправке формы
formenctype image, submit Тип кодирования набора данных формы для использования при отправке формы
formmethod image, submit Метод HTTP для использования при отправке формы
formnovalidate image, submit Пропустить проверку элемента управления формой для отправки формы
formtarget image, submit Контекст просмотра для отправки формы
height image То же, что и атрибут height для <img>; вертикальный размер
list все, кроме hidden, password, checkbox, radio, и кнопок Значение атрибута id для <datalist> вариантов автозаполнения
max date, month, week, time, datetime-local, number, range Максимальное значение
maxlength text, search, url, tel, email, password Максимальная длина (количество символов) value
min date, month, week, time, datetime-local, number, range Минимальное значение
minlength text, search, url, tel, email, password Минимальная длина (количество символов) value
multiple email, file Булево. Разрешить несколько значений
name все Имя элемента управления формой. Отправляется с формой в виде пары имя/значение
pattern text, search, url, tel, email, password Шаблон, которому value должен соответствовать для валидации
placeholder text, search, url, tel, email, password, number Текст, отображаемый в элементе управления формы, когда нет установленного значения
popovertarget button Определяет <input type="button"> как элемент управления для элемента всплывающего окна
popovertargetaction button Указывает действие, которое должен выполнить элемент управления всплывающим окном
readonly все, кроме hidden, range, color, checkbox, radio, и кнопок Булево. Значение не редактируется
required все, кроме hidden, range, color, и кнопок Булево. Значение необходимо или должно быть проверено для отправки формы
size text, search, url, tel, email, password Размер элемента управления
src image То же, что и атрибут src для <img>; адрес ресурса изображения
step date, month, week, time, datetime-local, number, range Приращения, которые являются допустимыми
type все Тип элемента управления формой
value все, кроме image Значение элемента управления. При указании в HTML соответствует начальному значению
width image То же, что и атрибут width для <img>

Несколько дополнительных нестандартных атрибутов перечислены после описаний стандартных атрибутов.

Индивидуальные атрибуты

accept

Действительно только для типа ввода file, атрибут accept определяет типы файлов, которые можно выбрать в элементе управления загрузкой file. См. тип ввода file.

alt

Действительно только для кнопки image, атрибут alt предоставляет альтернативный текст для изображения, отображая значение атрибута, если изображение src отсутствует или по какой-либо причине не загружается. См. тип ввода image.

autocapitalize

Управляет автоматическим прописным регистром вводимого текста и, если это необходимо, способом его применения. Более подробную информацию см. на странице глобального атрибута autocapitalize.

autocomplete

(Не булев атрибут!) Атрибут autocomplete принимает в качестве значения строку, разделенную пробелами, которая описывает, какие, если таковые имеются, типы функций автозаполнения должно предоставлять поле ввода. Типичная реализация автозаполнения вызывает ранее введенные значения в том же поле ввода, но могут существовать и более сложные формы автозаполнения. Например, браузер может интегрироваться со списком контактов устройства, чтобы автозаполнить email адреса в поле ввода электронной почты. См. autocomplete для допустимых значений.

Атрибут autocomplete действителен для hidden, text, search, url, tel, email, date, month, week, time, datetime-local, number, range, color, и password. Этот атрибут не влияет на типы ввода, которые не возвращают числовые или текстовые данные, и действителен для всех типов ввода, за исключением checkbox, radio, file, или любого из типов кнопок.

Дополнительную информацию, включая информацию о безопасности паролей и том, как autocomplete отличается для hidden от других типов ввода, см. в атрибуте autocomplete.

autofocus

Булев атрибут, который, если присутствует, указывает, что ввод должен автоматически получить фокус после загрузки страницы (или когда диалоговое окно <dialog>, содержащее элемент, было отображено).

Примечание: Элемент с атрибутом autofocus может получить фокус до вызова события DOMContentLoaded.

В документе не должно быть более одного элемента с атрибутом autofocus. Если он установлен на нескольких элементах, фокус получит первый элемент с этим атрибутом.

Атрибут autofocus не может быть использован для полей ввода типа hidden, так как скрытые поля ввода не могут получить фокус.

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

При применении атрибута autofocus следует с осторожностью относиться к доступности. Автоматический фокус на элементе может привести к прокрутке страницы при загрузке. Фокус также может вызвать отображение динамической клавиатуры на некоторых сенсорных устройствах. Хотя программа чтения с экрана объявит метку элемента формы, получившего фокус, программа чтения с экрана ничего не объявит до метки, и пользователь с нормальным зрением на маленьком устройстве также пропустит контекст, созданный предшествующим содержимым.

capture

Введён в спецификации HTML Media Capture и действителен только для типа ввода file, атрибут capture определяет, какой медиа — микрофон, видео или камера — должен использоваться для захвата нового файла для загрузки с помощью элемента управления загрузкой file в поддерживаемых сценариях. См. тип ввода file.

checked

Действителен для типов radio и checkbox, атрибут checked является булевым. Если он присутствует в элементе типа radio, это указывает, что выбранная радиокнопка является текущей в группе радиокнопок с одинаковыми именами. Если он присутствует в элементе типа checkbox, это указывает, что флажок установлен по умолчанию при загрузке страницы. Он не указывает, установлен ли флажок в данный момент: если состояние флажка изменяется, этот атрибут не отражает изменения. (Обновляется только атрибут IDL HTMLInputElement's checked).

Примечание: В отличие от других элементов управления вводом, значение флажков и радиокнопок включается в данные отправки только если они в данный момент checked. Если это так, имя и значение(я) выбранных элементов отправляются.

Например, если флажок, у которого name равно fruit, имеет value равное cherry, и флажок выбран, данные формы будут включать fruit=cherry. Если флажок не активен, он вообще не отображается в данных формы. Значение value по умолчанию для флажков и радиокнопок равно on.

dirname

Действителен для типов ввода hidden, text, search, url, tel и email, атрибут dirname позволяет отправлять направление элемента. При включении элемент управления формой отправит две пары имя/значение: первая — name и value, а вторая — значение атрибута dirname в качестве имени со значением ltr или rtl, установленным браузером.

html
<form action="page.html" method="post">
  <label>
    Fruit:
    <input type="text" name="fruit" dirname="fruit-dir" value="cherry" />
  </label>
  <input type="submit" />
</form>
<!-- page.html?fruit=cherry&fruit-dir=ltr -->

При отправке формы выше, элемент ввода вызовет отправку обеих пар name / value fruit=cherry и пары dirname / direction fruit-dir=ltr. Более подробная информация приведена в атрибуте dirname.

disabled

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

В частности, отключенные элементы ввода не получают событие click, и отключенные элементы ввода не отправляются вместе с формой.

Примечание: Хотя это не требуется в спецификации, браузер Firefox по умолчанию сохраняет динамическое состояние disabled элемента <input> при перегрузке страницы. Используйте атрибут autocomplete для управления этой функцией.

form

Строка, указывающая элемент <form>, с которым связан элемент ввода (то есть его владелец формы). Если это значение присутствует, оно должно совпадать со значением id элемента <form> в том же документе. Если этот атрибут не указан, элемент <input> связан с ближайшей содержащей формой, если таковая имеется.

Атрибут form позволяет размещать элемент ввода в любом месте документа, но включать его в форму в другом месте документа.

Примечание: Элемент ввода может быть связан только с одной формой.

formaction

Действительно только для типов ввода image и submit. Более подробная информация представлена в типе ввода submit.

formenctype

Действительно только для типов ввода image и submit. Более подробная информация представлена в типе ввода submit.

formmethod

Действительно только для типов ввода image и submit. Более подробная информация представлена в типе ввода submit.

formnovalidate

Действительно только для типов ввода image и submit. Более подробная информация представлена в типе ввода submit.

formtarget

Действительно только для типов ввода image и submit. Более подробная информация представлена в типе ввода submit.

height

Действительно только для кнопки ввода изображения image, атрибут height задает высоту файла изображения, отображаемого для представления графической кнопки отправки. См. тип ввода image.

id

Глобальный атрибут, действительный для всех элементов, включая все типы ввода, он определяет уникальный идентификатор (ID), который должен быть уникальным во всем документе. Его цель — идентифицировать элемент при ссылке. Значение используется в качестве значения атрибута <label>'s for для связывания метки с элементом управления формой. См. <label>.

inputmode

Глобальное значение, действительное для всех элементов, оно предоставляет подсказку браузерам о типе конфигурации виртуальной клавиатуры, которую следует использовать при редактировании этого элемента или его содержимого. Значения включают none, text, tel, url, email, numeric, decimal, и search.

list

Значение, задаваемое атрибуту list, должно быть id элемента <datalist>, расположенного в том же документе. Атрибут <datalist> предоставляет список предопределённых значений, чтобы предложить пользователю варианты для этого элемента ввода. Любые значения в списке, не совместимые с type, не включаются в предлагаемые варианты. Предоставляемые значения являются предложениями, а не требованиями: пользователи могут выбрать из этого предопределённого списка или ввести другое значение.

Он допустим для text, search, url, tel, email, date, month, week, time, datetime-local, number, range, и color.

Согласно спецификациям, атрибут list не поддерживается hidden, password, checkbox, radio, file, или любыми типами кнопок.

В зависимости от браузера, пользователь может увидеть предлагаемую собственную цветовую палитру, отметки вдоль диапазона или даже элемент ввода, открывающийся как <select>, но позволяющий вводить значения, отсутствующие в списке. Проверьте таблицу совместимости с браузерами по ссылке browser compatibility table для других типов элементов ввода.

См. элемент <datalist>.

max

Допустимо для date, month, week, time, datetime-local, number, и range, он определяет наибольшее значение в диапазоне допустимых значений. Если введённое value превышает это значение, элемент не проходит валидацию ограничений. Если значение атрибута max не является числом, элемент не имеет максимального значения.

Существует специальный случай: если тип данных периодический (например, для дат или времени), значение max может быть меньше значения min, что указывает на то, что диапазон может циклически повторяться; например, это позволяет задать диапазон времени с 22:00 до 4:00.

maxlength

Допустимо для text, search, url, tel, email, и password, оно определяет максимальную длину строки (измеряемую в единицах кода UTF-16), которую пользователь может ввести в поле. Это должно быть целое число 0 или больше. Если атрибут maxlength не указан или указано недопустимое значение, у поля нет максимальной длины. Это значение также должно быть больше или равно значению minlength.

Ввод не пройдёт валидацию ограничений, если длина текста, введённого в поле, превышает maxlength единиц кода UTF-16. По умолчанию браузеры предотвращают ввод пользователем большего количества символов, чем разрешено атрибутом maxlength. Валидация ограничений применяется только при изменении значения пользователем. Подробнее см. Client-side validation.

min

Допустимо для date, month, week, time, datetime-local, number, и range, оно определяет наименьшее значение в диапазоне допустимых значений. Если введённое value меньше этого значения, элемент не проходит валидацию ограничений. Если значение атрибута min не является числом, элемент не имеет минимального значения.

Это значение должно быть меньше или равно значению атрибута max. Если атрибут min присутствует, но не указан или является недопустимым, никакое значение min не применяется. Если атрибут min корректен и непустое значение меньше минимального, разрешённого атрибутом min, валидация ограничений предотвратит отправку формы. Подробнее см. Client-side validation.

Существует специальный случай: если тип данных периодический (например, для дат или времени), значение max может быть меньше значения min, что указывает на то, что диапазон может циклически повторяться; например, это позволяет задать диапазон времени с 22:00 до 4:00.

minlength

Допустимо для text, search, url, tel, email, и password, оно определяет минимальную длину строки (измеряемую в единицах кода UTF-16), которую пользователь может ввести в поле ввода. Это должно быть неотрицательное целое значение, меньшее или равное значению, указанному в maxlength. Если атрибут minlength не указан или указано недопустимое значение, у элемента нет минимальной длины.

Ввод не пройдёт валидацию ограничений, если длина текста, введённого в поле, меньше minlength единиц кода UTF-16, что предотвратит отправку формы. Валидация ограничений применяется только при изменении значения пользователем. Подробнее см. Client-side validation.

multiple

Булевый атрибут multiple, если установлен, означает, что пользователь может ввести разделенные запятыми адреса электронной почты в виджете электронной почты или может выбрать несколько файлов с помощью элемента ввода file. См. типы ввода email и file.

name

Строка, определяющая имя элемента управления вводом. Это имя отправляется вместе со значением элемента управления при отправке данных формы.

Рассматривайте атрибут name как обязательный (даже если он таковым не является). Если у элемента ввода нет указанного name, или name пусто, значение элемента ввода не отправляется с формой! (Отключённые элементы управления, неотмеченные радиокнопки, неотмеченные флажки и кнопки сброса также не отправляются.)

Существует два особых случая:

  1. _charset_ : Если используется в качестве имени элемента <input> типа hidden, атрибут value автоматически устанавливается браузером до используемой кодировки символов для отправки формы.
  2. isindex: По историческим причинам, имя isindex не разрешено.

Атрибут name создаёт уникальное поведение для радиокнопок.

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

При переключении на ряд радиокнопок с одинаковым именем, если одна из них выбрана, фокус будет переходить на неё. Если они не расположены последовательно в исходном порядке, если одна из радиокнопок выбрана, переключение фокуса на элементы группы начинается с первой выбранной радиокнопки в группе, пропуская все невыбранные. Другими словами, при выборе одной радиокнопки переключение фокуса пропускает невыбранные радиокнопки в группе. Если ни одна не выбрана, фокус переходит на радиокнопку в группе при достижении первой в том же имени группы.

После того, как фокус перешёл на одну из радиокнопок в группе, использование клавиш со стрелками позволит переходить по всем радиокнопкам с тем же именем, даже если радиокнопки не расположены последовательно в исходном порядке.

Если элементу ввода задано имя, это имя становится свойством элемента формы owning form element's HTMLFormElement.elements. Если у вас есть элемент ввода, у которого name задано как guest и другой, у которого name задано как hat-size, следующий код можно использовать:

js
let form = document.querySelector("form");

let guestName = form.elements.guest;
let hatSize = form.elements["hat-size"];

После выполнения этого кода guestName будет HTMLInputElement для поля guest, а hatSize — объектом для поля hat-size.

Предупреждение: Избегайте задания элементам формы имени, соответствующего встроенному свойству формы, так как вы затем переопределите предопределённое свойство или метод этой ссылкой на соответствующий элемент ввода.

pattern

Действительно для text, search, url, tel, email, и password, атрибут pattern определяет регулярное выражение, которому должно соответствовать значение value ввода для успешной проверки ограничений. Это должно быть допустимое регулярное выражение JavaScript, используемое типом RegExp, и как описано в нашем руководстве по регулярным выражениям; флаг 'u' указывается при компиляции регулярного выражения, чтобы шаблон обрабатывался как последовательность кодовых точек Юникода, а не как ASCII. В тексте шаблона не должны указываться слэши.

Если атрибут pattern присутствует, но не задан или недействителен, не применяется никакого регулярного выражения, и этот атрибут полностью игнорируется. Если атрибут pattern действителен и непустое значение не соответствует шаблону, проверка ограничений предотвратит отправку формы.

Примечание: При использовании атрибута pattern проинформируйте пользователя о ожидаемом формате, включив рядом пояснительный текст. Вы также можете включить атрибут title для объяснения требований к соответствию шаблону; большинство браузеров отобразят этот заголовок как подсказку. Пояснительный текст необходим для обеспечения доступности. Подсказка — это улучшение.

Дополнительную информацию см. в разделе Проверка на стороне клиента.

placeholder

Действительно для text, search, url, tel, email, password, и number, атрибут placeholder предоставляет краткое напоминание пользователю о том, какой тип информации ожидается в поле. Это должно быть слово или короткая фраза, которая даёт подсказку о ожидаемом типе данных, а не объяснение или запрос. Текст не должен содержать возвраты каретки или переводы строк. Например, если от поля ожидается ввод имени пользователя, а метка — "Имя", подходящим заполнительным текстом может быть "например, Иван Петров".

Примечание: Атрибут placeholder не так семантически полезен, как другие способы объяснения вашей формы, и может вызвать непредвиденные технические проблемы с вашим контентом. Дополнительную информацию см. в разделе Метки.

popovertarget

Преобразует элемент <input type="button"> в кнопку управления всплывающей подсказкой; принимает идентификатор элемента всплывающей подсказки для управления в качестве значения. Дополнительные сведения см. на странице документации API всплывающей подсказки.

popovertargetaction

Указывает действие, которое должно быть выполнено над элементом всплывающей подсказки, управляемым элементом управления <input type="button">. Возможные значения:

"hide"

Кнопка скроет отображаемую всплывающую подсказку. Если вы попытаетесь скрыть уже скрытую подсказку, никаких действий не будет.

"show"

Кнопка отобразит скрытую всплывающую подсказку. Если вы попытаетесь отобразить уже отображаемую подсказку, никаких действий не будет.

"toggle"

Кнопка переключит всплывающую подсказку между отображением и скрытием. Если подсказка скрыта, она будет отображена; если она отображается, она будет скрыта. Если popovertargetaction опущено, "toggle" является по умолчанию действием, которое будет выполнено кнопкой управления.

readonly

Булевый атрибут, который, если присутствует, указывает, что пользователь не должен иметь возможность редактировать значение ввода. Атрибут readonly поддерживается типами ввода text, search, url, tel, email, date, month, week, time, datetime-local, number, и password.

Дополнительную информацию см. в разделе Атрибут HTML: readonly.

required

required — булевый атрибут, который, если присутствует, указывает, что пользователь должен указать значение для ввода перед отправкой содержащей его формы. Атрибут required поддерживается типами ввода text, search, url, tel, email, date, month, week, time, datetime-local, number, password, checkbox, radio, и file.

Дополнительную информацию см. в разделе Проверка на стороне клиента и в разделе Атрибут HTML: required.

size

Действительно для email, password, tel, url, и text, атрибут size задаёт, сколько ввода будет видно. В основном, создаёт тот же результат, что и установка свойства CSS width с несколькими особенностями. Фактическая единица значения зависит от типа ввода. Для password и text это количество символов (или единиц em), по умолчанию 20, а для других — пиксели (или единицы px). Свойство CSS width имеет приоритет над атрибутом size.

src

Действительно только для кнопки ввода image, src — строка, определяющая URL-адрес файла изображения для отображения в качестве графической кнопки отправки. См. тип ввода изображение.

step

Действительно для date, month, week, time, datetime-local, number, и range, атрибут step — число, определяющее степень детализации, которой должно соответствовать значение.

Если не указано явно:

  • step по умолчанию равен 1 для number и range.
  • Каждый тип ввода даты/времени имеет значение step по умолчанию, соответствующее типу; см. страницы отдельных элементов ввода: date, datetime-local, month, time, и week.

Значение должно быть положительным числом — целым или дробным — или специальным значением any, что означает отсутствие предполагаемого шага, и любое значение допустимо (кроме других ограничений, таких как min и max).

Если any не задано явно, допустимые значения для number, даты/времени и range типов ввода равны основанию шага — значению min и приращениям значения шага до значения max, если указано.

Например, если у вас есть <input type="number" min="10" step="2">, то любое чётное целое число, 10 или больше, допустимо. Если опущено, <input type="number">, любое целое число допустимо, но десятичные значения (например, 4.2) не допустимы, потому что step по умолчанию равен 1. Чтобы 4.2 было допустимым, step должно было быть установлено на any, 0,1, 0,2 или любое значение min, которое должно заканчиваться .2, например <input type="number" min="-5.2">.

Примечание: Когда введенные пользователем данные не соответствуют конфигурации шагов, значение считается недействительным при проверке ограничений и будет соответствовать псевдоклассу :invalid.

Дополнительную информацию см. в разделе Проверка на стороне клиента.

tabindex

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

title

Глобальный атрибут, допустимый для всех элементов, включая все типы ввода, содержащий текст, представляющий справочную информацию, относящуюся к элементу, к которому он относится. Такая информация обычно, но необязательно, может быть представлена пользователю в виде всплывающей подсказки. Не следует использовать заголовок в качестве основного объяснения назначения элемента управления формой. Вместо этого используйте элемент <label> с атрибутом for, установленным на атрибут id элемента управления формой. См. раздел Метки ниже.

type

Строка, определяющая тип рендеринга элемента управления. Например, для создания флажка используется значение checkbox. Если опущено (или указано неизвестное значение), используется тип ввода text, создавая поле ввода обычного текста.

Допустимые значения перечислены в разделе Типы ввода выше.

value

Значение элемента управления вводом. При указании в HTML это начальное значение, которое впоследствии может быть изменено или получено в любое время с помощью JavaScript для доступа к соответствующему объекту HTMLInputElement свойству value. Атрибут value всегда является необязательным, хотя следует считать его обязательным для checkbox, radio, и hidden.

width

Действительно только для кнопки ввода изображения image, width — это ширина файла изображения, отображаемого для представления графической кнопки отправки. См. тип ввода image.

Нестандартные атрибуты

Следующие нестандартные атрибуты также доступны в некоторых браузерах. Как правило, следует избегать их использования, если это не обязательно.

Атрибут Описание
autocorrect Строка, указывающая, включена ли функция автоматической коррекции on или off. Только Safari.
incremental Следует ли отправлять повторяющиеся события search для обновления результатов живого поиска, пока пользователь редактирует значение поля. Только WebKit и Blink (Safari, Chrome, Opera и т. д.).
mozactionhint Устаревший

Строка, указывающая тип действия, которое будет выполнено при нажатии пользователем клавиши Enter или Return во время редактирования поля; используется для определения подходящей метки для этой клавиши на виртуальной клавиатуре. Поскольку этот атрибут устарел, используйте enterkeyhint вместо него.

orient Устанавливает ориентацию ползунка диапазона. Только Firefox.
results Максимальное количество элементов, которые должны отображаться в раскрывающемся списке предыдущих запросов поиска. Только Safari.
webkitdirectory Булево значение, указывающее, разрешено ли пользователю выбирать только каталог (или каталоги, если также присутствует multiple)
autocorrect Нестандартный

(Только Safari). Строка, которая указывает, следует ли активировать автоматическую коррекцию ошибок, пока пользователь редактирует это поле. Разрешенные значения:

on

Включить автоматическую коррекцию опечаток, а также обработку подстановок текста, если они настроены.

off

Отключить автоматическую коррекцию и подстановки текста.

incremental Нестандартный

Булевой атрибут incremental является расширением WebKit и Blink (поэтому поддерживается Safari, Opera, Chrome и т. д.), который, если присутствует, сообщает пользовательскому агенту обработать ввод как живой поиск. По мере редактирования пользователем значения поля пользовательский агент отправляет события search объекту HTMLInputElement, представляющему поле поиска. Это позволяет вашему коду обновлять результаты поиска в реальном времени по мере редактирования пользователем поиска.

Если incremental не указано, событие search отправляется только при явном запуске поиска пользователем (например, при нажатии клавиш Enter или Return во время редактирования поля).

Событие search ограничено по частоте, чтобы оно не отправлялось чаще, чем в определённый интервал, заданный реализацией.

orient Нестандартный

Аналогично нестандартному свойству CSS -moz-orient, влияющему на элементы <progress> и <meter>, атрибут orient определяет ориентацию ползунка диапазона. Значения включают horizontal, означающее, что диапазон отображается горизонтально, и vertical, где диапазон отображается вертикально. См. Создание вертикальных элементов управления формами для современного подхода к созданию вертикальных элементов управления формами.

results Нестандартный

Атрибут results — поддерживается только Safari — это числовое значение, позволяющее переопределить максимальное количество записей, отображаемых в раскрывающемся списке элемента <input> — предоставляемом по умолчанию списке предыдущих запросов поиска.

Значение должно быть неотрицательным десятичным числом. Если он не указан или задано недопустимое значение, используется максимальное количество записей по умолчанию для браузера.

webkitdirectory Нестандартный

Булевый атрибут webkitdirectory , если он присутствует, указывает, что пользователю доступны только каталоги, которые следует выбрать в интерфейсе выбора файла. См. HTMLInputElement.webkitdirectory для получения дополнительной информации и примеров.

Хотя изначально реализован только для браузеров на основе WebKit, webkitdirectory также можно использовать в Microsoft Edge, а также в Firefox 50 и более поздних версиях. Однако, несмотря на относительно широкую поддержку, он всё ещё не является стандартным и не должен использоваться, если у вас есть альтернатива.

Методы

Следующие методы предоставляются интерфейсом HTMLInputElement, который представляет элементы <input> в DOM. Также доступны методы, заданные родительскими интерфейсами, HTMLElement, Element, Node и EventTarget.

checkValidity()

Возвращает true , если значение элемента проходит проверки на валидность; в противном случае возвращает false и вызывает событие invalid в элементе.

reportValidity()

Возвращает true , если значение элемента проходит проверки на валидность; в противном случае возвращает false, вызывает событие invalid в элементе и (если событие не отменено) сообщает о проблеме пользователю.

select()

Выделяет всё содержимое элемента <input>, если содержимое элемента можно выделить. Для элементов без выделенного текстового содержимого (например, визуального выбора цвета или поля ввода даты календаря) этот метод ничего не делает.

setCustomValidity()

Устанавливает пользовательское сообщение для отображения, если значение элемента ввода недействительно.

setRangeText()

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

setSelectionRange()

Выделяет указанный диапазон символов в текстовом элементе ввода. Для элементов, которые не представлены как текстовые поля ввода, ничего не делает.

showPicker()

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

stepDown()

Уменьшает значение числового ввода на единицу по умолчанию или на указанное количество единиц.

stepUp()

Увеличивает значение числового ввода на единицу или на указанное количество единиц.

CSS

Элементы ввода, являясь заменяемыми элементами, обладают некоторыми особенностями, неприменимыми к элементам, не являющимся формами. Существуют CSS-селекторы, которые могут нацеливаться на элементы управления формами на основе их функций пользовательского интерфейса, также известных как псевдоклассы UI. Элемент ввода также может быть нацелен по типу с помощью селекторов атрибутов. Также есть некоторые свойства, которые особенно полезны.

Псевдоклассы UI

Заголовки, имеющие непосредственное отношение к элементу <input>:
Псевдокласс Описание
:enabled Любой в данный момент активный элемент, который может быть активирован (выбран, нажат, введен текст и т. д.) или получить фокус, а также имеет состояние disabled, в котором он не может быть активирован или получить фокус.
:disabled Любой в данный момент отключённый элемент, который имеет состояние enabled, что означает, что он в противном случае может быть активирован (выбран, нажат, введен текст и т. д.) или получить фокус, если бы не был отключен.
:read-only Элемент, который недоступен для редактирования пользователем
:read-write Элемент, который доступен для редактирования пользователем.
:placeholder-shown Элемент, который в данный момент отображает placeholder текст, включая элементы <input> и <textarea> с присутствующим атрибутом placeholder, которые пока не имеют значения.
:default Элементы форм, которые являются стандартными в группе связанных элементов. Соответствует типам ввода checkbox и radio, которые были отмечены при загрузке или рендеринге страницы.
:checked Соответствует типам ввода checkbox и radio, которые в данный момент отмечены (и (<option> в <select>, который в данный момент выбран).
:indeterminate Элементы checkbox, у которых свойство indeterminate установлено в true с помощью JavaScript, элементы radio, когда все радиокнопки с тем же именем в форме не отмечены, и элементы <progress> в неопределенном состоянии
:valid Элементы управления формами, к которым можно применить проверку ограничений, и которые в данный момент действительны.
:invalid Элементы управления формами, к которым применена проверка ограничений, и которые в данный момент недействительны. Соответствует элементу управления формой, значение которого не соответствует ограничениям, установленным для него его атрибутами, таким как required, pattern, step и max.
:in-range Непустой элемент ввода, текущее значение которого находится в пределах ограничений диапазона, указанных атрибутами min и max и step.
:out-of-range Непустой элемент ввода, текущее значение которого НЕ находится в пределах ограничений диапазона, указанных атрибутами min и max или не соответствует ограничению step.
:required Элемент <input>, <select> или <textarea>, у которого установлен атрибут required. Соответствует только тем элементам, которые могут быть обязательными. Атрибут, включенный в элемент, не подлежащий требованию, не будет соответствовать.
:optional Элемент <input>, <select> или <textarea>, у которого НЕ установлен атрибут required. Не соответствует элементам, которые не могут быть обязательными.
:blank Элементы <input> и <textarea>, которые в данный момент не имеют значения.
:user-invalid Аналогично :invalid, но активируется при потере фокуса. Соответствует недействительному вводу, но только после взаимодействия пользователя, например, при переходе к элементу управления, уходе с элемента управления или попытке отправить форму, содержащую недействительный элемент управления.

Пример псевдоклассов

Мы можем стилизовать метку флажка на основе того, отмечен ли флажок. В этом примере мы стилизуем color и font-weight метки <label>, которая следует непосредственно за отмеченным элементом ввода. Мы не применяем никаких стилей, если флажок input не отмечен.

css
input:checked + label {
  color: red;
  font-weight: bold;
}

Селекторы атрибутов

Можно нацеливаться на различные типы элементов управления формами на основе их type с помощью селекторов атрибутов. Селекторы атрибутов CSS соответствуют элементам на основе наличия или значения заданного атрибута.

css
/* matches a password input */
input[type="password"] {
}

/* matches a form control whose valid values are limited to a range of values*/
input[min][max] {
}

/* matches a form control with a pattern attribute */
input[pattern] {
}

::placeholder

По умолчанию, отображение подчёркивающего текста полупрозрачное или светло-серое. Псевдоэлемент ::placeholder — это placeholder текст элемента ввода. Его можно стилизовать с помощью ограниченного набора CSS-свойств.

css
::placeholder {
  color: blue;
}

В правиле, использующем ::placeholder в своём селекторе, можно использовать только подмножество CSS-свойств, применимых к псевдоэлементу ::first-line.

appearance

Свойство appearance позволяет отображать (почти) любой элемент в стиле, характерном для платформы, на основе темы операционной системы, а также удалять любой стиль, характерный для платформы, с помощью значения none.

Вы можете заставить элемент <div> выглядеть как радиокнопка с div {appearance: radio;} или радиокнопку как флажок с [type="radio"] {appearance: checkbox;}, но не делайте этого.

Установка appearance: none удаляет стандартные границы платформы, но не функциональность.

caret-color

Свойство, специфичное для элементов, связанных с вводом текста, — это CSS-свойство caret-color, которое позволяет задать цвет курсора ввода текста:

HTML

html
<label for="textInput">Note the red caret:</label>
<input id="textInput" class="custom" size="32" />

CSS

css
input.custom {
  caret-color: red;
  font:
    16px "Helvetica",
    "Arial",
    "sans-serif";
}

Результат

field-sizing

Свойство field-sizing позволяет управлять поведением размера элементов ввода формы (т. е. по умолчанию им задаётся предпочтительный размер). Это свойство позволяет переопределять поведение по умолчанию, позволяя элементам управления формами изменять размер в соответствии с их содержимым.

Это свойство обычно используется для создания полей формы, которые «обёртывают» своё содержимое и увеличиваются по мере ввода большего объёма текста. Это работает с типами ввода, которые принимают прямой ввод текста (например, text и url), типом ввода file и элементами <textarea>.

object-position и object-fit

В некоторых случаях (как правило, при использовании нетекстовых входных данных и специализированных интерфейсов), элемент <input> является замещающим элементом. В этом случае положение и размер элемента, а также его позиционирование в рамках фрейма, могут быть настроены с помощью свойств CSS object-position и object-fit.

Стиль

Для получения дополнительной информации о добавлении цвета к элементам в HTML, см.:

  • Применение цвета к HTML-элементам с помощью CSS.

Также см.:

  • Стиль HTML-форм
  • Расширенный стиль HTML-форм и
  • таблицу совместимости свойств CSS.

Дополнительные функции

Метки

Метки необходимы для сопоставления вспомогательного текста с <input>. Элемент <label> предоставляет пояснительную информацию об элементе формы, которая всегда уместна (кроме случаев, связанных с макетом). Использование метки для пояснения того, что следует вводить в поле <input> или <textarea>, никогда не будет лишним.

Связанные метки

Семантическое связывание элементов <input> и <label> полезно для вспомогательных технологий, таких как программы чтения с экрана. Связывая их с помощью атрибута <label> for, вы связываете метку с элементом ввода таким образом, что программы чтения с экрана могут более точно описывать ввод пользователю.

Недостаточно иметь просто текст, расположенный рядом с элементом <input>. Для удобства использования и доступности требуется включение неявной или явной <label>:

html
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>

<!-- implicit label -->
<p>
  <label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>

<!-- explicit label -->
<p>
  <label for="name">Enter your name: </label>
  <input id="name" type="text" size="30" />
</p>

Первый пример недоступен: нет связи между подсказкой и элементом <input>.

В дополнение к доступному имени, метка предоставляет большую область "нажатия" для пользователей мыши и сенсорных экранов для нажатия или касания. Нажав на метку или на элемент ввода, вы активируете элемент ввода <input>. Если вы используете обычный текст для обозначения ввода, этого не произойдет. Наличие подсказки в области активации ввода полезно для людей с нарушениями моторики.

Как веб-разработчики, нам важно никогда не предполагать, что люди знают все, что знаем мы. Разнообразие пользователей в сети — и, следовательно, вашего сайта — практически гарантирует, что некоторые посетители вашего сайта будут интерпретировать ваши формы совершенно иначе, чем вы, без четких и правильно представленных меток.

Подсказки не доступны

Атрибут placeholder позволяет указать текст, который отображается внутри области содержимого элемента <input> при его пустоте. Подсказка никогда не должна быть необходимой для понимания ваших форм. Она не является меткой и не должна использоваться в качестве замены, потому что ею не является. Подсказка используется для указания того, как должен выглядеть введённое значение, а не для объяснения или запроса.

Подсказка не только не доступна для программ чтения с экрана, но и исчезает, как только пользователь вводит текст в поле ввода или если поле ввода уже имеет значение. Браузеры с функциями автоматического перевода страницы могут пропускать атрибуты при переводе, что означает, что placeholder может не переводиться.

Примечание: Не используйте атрибут placeholder, если можете избежать этого. Если вам нужно обозначить элемент <input> , используйте элемент <label>.

Валидация на стороне клиента

Предупреждение: Клиентская валидация полезна, но она не гарантирует, что сервер получит корректные данные. Если данные должны иметь определенный формат, всегда проверяйте их также на стороне сервера и возвращайте 400 HTTP-ответ, если формат некорректен.

Помимо использования CSS для стилизации элементов ввода на основе состояния :valid или :invalid UI-состояний, основываясь на текущем состоянии каждого элемента ввода, как указано в разделе «UI-псевдоклассы» выше, браузер предоставляет возможность клиентской валидации при (попытке) отправки формы. При отправке формы, если какой-либо элемент управления формой не проходит проверку, поддерживающие браузеры отобразят сообщение об ошибке на первом некорректном элементе управления формы; отображая стандартное сообщение, основанное на типе ошибки, или сообщение, заданное вами.

Некоторые типы элементов ввода и другие атрибуты устанавливают ограничения на допустимые значения для данного элемента ввода. Например, <input type="number" min="2" max="10" step="2"> означает, что допустимы только числа 2, 4, 6, 8 или 10. Могут возникнуть несколько ошибок, включая ошибку rangeUnderflow если значение меньше 2, rangeOverflow если оно больше 10, stepMismatch если значение находится между 2 и 10, но не является четным целым числом (не соответствует требованиям атрибута step), или typeMismatch если значение не является числом.

Для типов ввода, область возможных значений которых является периодической (то есть при достижении наибольшего возможного значения, значения циклически возвращаются к началу, а не заканчиваются), возможно обратное значение свойств max и min, что указывает на то, что диапазон допустимых значений начинается с min, циклически возвращается к наименьшему возможному значению, а затем продолжается до достижения max. Это особенно полезно для дат и времени, например, когда нужно разрешить диапазон от 20:00 до 8:00:

html
<input type="time" min="20:00" max="08:00" name="overnight" />

Конкретные атрибуты и их значения могут привести к определённой ошибке ValidityState:

Ошибки объекта Validity зависят от атрибутов <input> и их значений:
Атрибут Соответствующее свойство Описание
max validityState.rangeOverflow Возникает, когда значение больше максимального значения, определённого атрибутом max
maxlength validityState.tooLong Возникает, когда количество символов больше, чем разрешено свойством maxlength
min validityState.rangeUnderflow Возникает, когда значение меньше минимального значения, определённого атрибутом min
minlength validityState.tooShort Возникает, когда количество символов меньше требуемого значения свойством minlength
pattern validityState.patternMismatch Возникает, когда атрибут pattern включает правильный регулярное выражение, и значение value не соответствует ему.
required validityState.valueMissing Возникает, когда атрибут required присутствует, но значение отсутствует или пустая строка, или радиокнопка или флажок не выбраны.
step validityState.stepMismatch Значение не соответствует шагу инкремента. Значение по умолчанию — 1, поэтому только целые числа являются допустимыми, если type="number" не указан. step="any" никогда не вызовет эту ошибку.
type validityState.typeMismatch Возникает, когда значение не является правильного типа, например, адрес электронной почты не содержит @ или URL не содержит протокола.

Если у элемента управления формой нет атрибута required, отсутствует значение или пустая строка, то это не является ошибкой. Даже если указанные выше атрибуты присутствуют, за исключением required, пустая строка не приведёт к ошибке.

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

В дополнение к описанным выше ошибкам, интерфейс validityState содержит булевы свойства badInput, valid, и customError. Объект проверки содержит:

  • validityState.valueMissing
  • validityState.typeMismatch
  • validityState.patternMismatch
  • validityState.tooLong
  • validityState.tooShort
  • validityState.rangeUnderflow
  • validityState.rangeOverflow
  • validityState.stepMismatch
  • validityState.badInput
  • validityState.valid
  • validityState.customError

Для каждого из этих булевых свойств значение true указывает, что указанная причина проверки могла завершиться неудачей, за исключением свойства valid, которое равно true если значение элемента соответствует всем ограничениям.

Если возникла ошибка, поддерживающие браузеры выведут сообщение об ошибке пользователю и не позволят отправить форму. Важное замечание: если пользовательское сообщение об ошибке имеет значение, отличное от пустой строки или null, отправка формы будет запрещена. Если нет сообщения об ошибке и ни одно из других свойств не возвращает true, valid будет true, и форму можно отправить.

js
function validate(input) {
  let validityState_object = input.validity;
  if (validityState_object.valueMissing) {
    input.setCustomValidity("A value is required");
  } else if (validityState_object.rangeUnderflow) {
    input.setCustomValidity("Your value is too low");
  } else if (validityState_object.rangeOverflow) {
    input.setCustomValidity("Your value is too high");
  } else {
    input.setCustomValidity("");
  }
}

Последняя строка, устанавливающая пользовательское сообщение проверки в пустую строку, имеет важное значение. Если пользователь ошибся, и сообщение проверки установлено, форма не будет отправлена, даже если все значения корректны, пока сообщение не будет null.

Пример пользовательской ошибки валидации

Если вы хотите отобразить пользовательское сообщение об ошибке, когда поле не проходит валидацию, вам необходимо использовать API проверки ограничений API проверки ограничений, доступный для элементов <input> (и родственных). Рассмотрим следующую форму:

html
<form>
  <label for="name">Enter username (upper and lowercase letters): </label>
  <input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
  <button>Submit</button>
</form>

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

Если вы хотите вместо этого отображать пользовательские сообщения об ошибках, вы можете использовать JavaScript, как показано ниже:

js
const nameInput = document.querySelector("input");

nameInput.addEventListener("input", () => {
  nameInput.setCustomValidity("");
  nameInput.checkValidity();
});

nameInput.addEventListener("invalid", () => {
  if (nameInput.value === "") {
    nameInput.setCustomValidity("Enter your username!");
  } else {
    nameInput.setCustomValidity(
      "Usernames can only contain upper and lowercase letters. Try again!",
    );
  }
});

Пример отображения:

Вкратце:

  • Мы проверяем состояние валидности элемента ввода каждый раз, когда его значение изменяется, вызывая метод checkValidity() через обработчик события input.
  • Если значение некорректно, возникает событие invalid, и выполняется функция обработчика события invalid. Внутри этой функции мы определяем, является ли значение некорректным из-за того, что оно пустое, или из-за того, что оно не соответствует шаблону, используя блок if (), и устанавливаем пользовательское сообщение об ошибке валидации.
  • В результате, если значение ввода некорректно при нажатии кнопки отправки, будет отображено одно из пользовательских сообщений об ошибках.
  • Если значение корректно, форма будет отправлена, как ожидается. Для этого пользовательское сообщение проверки должно быть отменено, вызвав setCustomValidity() с пустым значением. Поэтому мы делаем это каждый раз, когда возникает событие input. Если вы этого не сделаете, и ранее было установлено пользовательское сообщение проверки, элемент ввода будет регистрироваться как некорректный, даже если он в настоящее время содержит корректное значение при отправке.

Примечание: Всегда проверяйте ограничения ввода как на стороне клиента, так и на стороне сервера. Проверка ограничений не отменяет необходимости проверки на стороне сервера. Некорректные значения все равно могут быть отправлены старыми браузерами или злоумышленниками.

Примечание: Firefox поддерживал собственную атрибут ошибки — x-moz-errormessage — многие версии, что позволяло задавать пользовательские сообщения об ошибках аналогичным образом. Эта возможность была удалена с версии 66 (см. ошибку Firefox 1513890).

Локализация

Допустимые входные данные для определённых типов <input> зависят от локали. В некоторых локалях 1 000,00 является допустимым числом, в то время как в других локалях для ввода этого числа необходимо использовать 1.000,00.

Firefox использует следующие эвристики для определения локали для проверки ввода пользователя (по крайней мере для type="number"):

  • Попробовать язык, указанный атрибутом lang/xml:lang на элементе или любом из его родителей.
  • Попробовать язык, указанный в HTTP-заголовке Content-Language. Или,
  • Если ни один не указан, использовать локаль браузера.

Технический обзор

Категории контента Контент потока, перечисленный, отправляемый, сбрасываемый, связанный с формой элемент, текстовый контент. Если type не hidden, то элемент с меткой, осязаемый контент.
Разрешенный контент Нет; это пустой элемент.
Пропуск тега Должен иметь стартовый тег и не должен иметь конечный тег.
Разрешенные родительские элементы Любой элемент, принимающий текстовый контент.
Неявная роль ARIA
  • type=button: button
  • type=checkbox: checkbox
  • type=email
    • без атрибута list: textbox
    • с атрибутом list: combobox
  • type=image: button
  • type=number: spinbutton
  • type=radio: radio
  • type=range: slider
  • type=reset: button
  • type=search
    • без атрибута list: searchbox
    • с атрибутом list: combobox
  • type=submit: button
  • type=tel
    • без атрибута list: textbox
    • с атрибутом list: combobox
  • type=text
    • без атрибута list: textbox
    • с атрибутом list: combobox
  • type=url
    • без атрибута list: textbox
    • с атрибутом list: combobox
  • type=color|date|datetime-local|file|hidden|month|password|time|week: нет соответствующей роли
Разрешенные роли ARIA
  • type=button: checkbox, combobox, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch, tab
  • type=checkbox: button при использовании с aria-pressed, menuitemcheckbox, option, switch
  • type=image: link, menuitem, menuitemcheckbox, menuitemradio, radio, switch
  • type=radio: menuitemradio
  • type=text без атрибута list: combobox, searchbox, spinbutton
  • type=color|date|datetime-local|email|file|hidden| month|number|password|range|reset|search|submit|tel|url|week или text с атрибутом list: роль role не разрешена
Интерфейс DOM HTMLInputElement

Вопросы доступности

Метки

При включении элементов ввода необходимо добавлять метки. Это необходимо для того, чтобы люди, использующие вспомогательные технологии, могли понять, для чего предназначен элемент ввода. Кроме того, щелчок или касание метки переводит фокус на связанный элемент управления формой. Это повышает доступность и удобство для пользователей с нормальным зрением, увеличивает область, которую пользователь может щелкнуть или коснуться для активации элемента управления формой. Это особенно полезно (и даже необходимо) для радиокнопок и флажков, которые имеют очень маленький размер. Для получения дополнительной информации о метках см. Метки.

Ниже приведен пример того, как связать <label> с элементом <input> в указанном выше стиле. Необходимо добавить атрибут <input> к <input>. Затем <label> должен содержать атрибут for, значение которого совпадает со значением атрибута id элемента ввода.

html
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />

Размер

Интерактивные элементы, такие как элементы ввода формы, должны иметь достаточно большую область, чтобы их было легко активировать. Это помогает различным группам пользователей, в том числе людям с проблемами управления двигательной функцией и людям, использующим неточные методы ввода, такие как стилус или пальцы. Рекомендуется минимальный размер интерактивной области 44×44 CSS пикселей.

  • Понимание критерия успешности 2.5.5: Размер целевой области | W3C Понимание WCAG 2.1
  • Размер целевой области и 2.5.5 | Adrian Roselli
  • Быстрый тест: Большие области касания — Проект A11Y

Спецификации

Спецификация
Стандарт HTML
# the-input-element

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
input 1 12
1До Firefox 89, манипулирование содержимым элементов <input> с помощью команд Document.execCommand() требовало обходных путей (см. bug 1220696).
≤12.1 1 18
4До Firefox 89, манипулирование содержимым элементов <input> с помощью команд Document.execCommand() требовало обходных путей (см. bug 1220696).
≤12.1 1 1.0 1
accept 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
align 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
alt 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
autocomplete 14 12 4 ≤12.1 6 18 4 ≤12.1 6 1.0 4.4
capture Нет Нет Нет Нет Нет 25 79 14 10 1.5 4.4
checked 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
dirname 17 79 116 ≤12.1 6 18 116 ≤12.1 6 1.0 4.4
disabled 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
form 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
formaction 9 12 4 ≤12.1 5 18 4 ≤12.1 4.2 1.0 3
formenctype 9 12 4 ≤12.1 5 18 4 ≤12.1 4.2 1.0 3
formmethod 9 12 4 ≤12.1 5 18 4 ≤12.1 4.2 1.0 3
formnovalidate 4 12 4 ≤12.1 5 18 4 ≤12.1 4 1.0 ≤37
formtarget 9 12 4 ≤12.1 5 18 4 ≤12.1 4.2 1.0 3
list 20 12 4 ≤12.1 12.1 25 4 ≤12.1 12.2 1.5 4.4.3
max 4 12 16 ≤12.1 5 18 16 ≤12.1 4 1.0 ≤37
maxlength 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
min 4 12 16 ≤12.1 5 18 16 ≤12.1 4 1.0 ≤37
minlength 40 17 51 27 10.1 40 51 27 10.3 4.0 40
mozactionhint Нет Нет 4–119 Нет Нет Нет 4–119 Нет Нет Нет Нет
multiple 2 12 3.6 ≤12.1 4 18 4 ≤12.1 3.2 1.0 ≤37
name 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
pattern 4 12 4 ≤12.1 5 18 4 ≤12.1 4 1.0 ≤37
placeholder 3 12 4 ≤12.1 4 18 4 ≤12.1 3.2 1.0 ≤37
popovertarget 114 114 125 100 17 114 125 76 17 23.0 114
popovertargetaction 114 114 125 100 17 114 125 76 17 23.0 114
readonly 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
required 4 12 4 ≤12.1 5 18 4 ≤12.1 4 1.0 ≤37
size 1 12 1 ≤12.1 1 18 4 14 1 1.0 4.4
src 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
step 5 12 16 ≤12.1 5 18 16 ≤12.1 4 1.0 ≤37
type_button 1 12 1 15 1 18 4 14 1 1.0 4.4
type_checkbox 1 12 1 15 1 18 4 14 1 1.0 4.4
type_color 20 14 29 12 12.1 25
27Firefox for Android doesn't allow the user to choose a custom color, only one of the predefined ones.
12 12.2 1.5 4.4
type_date 20 12 57 11 14.1 25 57 11 5 1.5 4.4
type_datetime-local 20 12
93Firefox only displays a date picker and does not display a time picker, see bug 1726108.
11
14.1Safari only displays a date picker and does not display a time picker.
25 93 11 5 1.5 4.4
type_email 5 12 1 11 5 18 4 11
3["Doesn't do validation, but instead offers a custom 'email' keyboard, which is designed to make entering email addresses easier.", "The custom 'email' keyboard does not provide a comma key, so users cannot enter multiple email addresses.", "Automatically applies a default style of opacity: 0.4 to disable textual <input> elements, including those of type 'email'. Other major browsers don't currently share this particular default style."]
1.0 4.4
type_file 1 12
1You can set as well as get the value of HTMLInputElement.files in all modern browsers; this was most recently added to Firefox, in version 57 (see bug 1384030).
11 1 18 4 11 1 1.0 4.4
type_hidden 1 12 1 2 1 18 4 14 1 1.0 4.4
type_image 1 12 1 15 1 18 4 14 1 1.0 4.4
type_month 20 12 Нет 11
НетТип входных данных распознаётся, но нет специального элемента управления для месяца. См. ошибку 200416.
25 18 14 ≤11.3 1.5 4.4
type_number 7 12 29 15 5.1 18 29 14 5 1.0 4.4
type_password 1 12 1 2 1 18 4 14 1 1.0 4.4
type_radio 1 12 1 15 1 18 4 14 1 1.0 4.4
type_range 4 12 23 11 3.1 57 52 11 5 7.0 4.4
2–4.4Pre-Chromium Android WebView recognizes the range type, but doesn't implement a range-specific control.
type_reset 1 12
1В отличие от других браузеров, Firefox по умолчанию сохраняет динамическое состояние disabled элемента <button> при перегрузке страницы. Используйте атрибут autocomplete для управления этой функцией.
15 1 18
4В отличие от других браузеров, Firefox по умолчанию сохраняет динамическое состояние disabled элемента <button> при перегрузке страницы. Используйте атрибут autocomplete для управления этой функцией.
14 1 1.0 4.4
type_search 5 12 4 10.6 5 18 4 14 4.2 1.0 4.4
type_submit 1 12
1В отличие от других браузеров, Firefox по умолчанию сохраняет динамическое состояние disabled элемента <button> при перегрузке страницы. Используйте атрибут autocomplete для управления этой функцией.
15 1 18
4В отличие от других браузеров, Firefox по умолчанию сохраняет динамическое состояние disabled элемента <button> при перегрузке страницы. Используйте атрибут autocomplete для управления этой функцией.
14 1 1.0 4.4
type_tel
3Тип поля не демонстрирует особого поведения.
12 4 11
4Тип поля не демонстрирует особого поведения.
18 4 11 3 1.0 ≤37
type_text 1 12 1 15 1 18 4 14 1 1.0 4.4
type_time 20 12 57 10 14.1 25 57 10.1 5 1.5 4.4
type_url 1 12 1 11 1 18 4 14 1 1.0 4.4
type_week 20 12 Нет 11 Нет 25 18 14 Нет 1.5 4.4
usemap 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4

См. также

  • Проверка ограничений формы
  • Ваша первая HTML-форма
  • Как структурировать HTML-форму
  • Основные встроенные элементы управления формы
  • Отправка данных формы
  • Валидация данных формы
  • Как создать пользовательские элементы управления формы
  • HTML-формы в устаревших браузерах
  • Стиль HTML-форм
  • Расширенный стиль HTML-форм
  • Создание вертикальных элементов управления форм

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API