<input>: Элемент ввода (элемент формы)
Элемент <input> HTML используется для создания интерактивных элементов управления для веб-форм, чтобы принимать данные от пользователя; доступно множество типов входных данных и виджетов управления, в зависимости от устройства и браузера. Элемент <input> является одним из самых мощных и сложных во всем HTML из-за большого количества комбинаций типов ввода и атрибутов.
Попробуйте
Типы <input>
Функционирование элемента <input> существенно зависит от значения его атрибута type, поэтому различные типы описаны на отдельных страницах справочника. Если этот атрибут не указан, по умолчанию используется text.
Доступные типы:
| Тип | Описание | Основные примеры |
|---|---|---|
| button | Кнопка с нажатием без заданного поведения, отображающая значение атрибута value, по умолчанию пустое. |
|
| checkbox | Флажок, позволяющий выбирать/снимать выбор одиночных значений. |
|
| color | Элемент управления для задания цвета; открывает цветовой пикер при активации в поддерживающих браузерах. |
|
| date | Элемент управления для ввода даты (год, месяц и день без времени). При активации в поддерживающих браузерах открывается календарь выбора даты или цифровые колесики для года, месяца и дня. |
|
| datetime-local | Элемент управления для ввода даты и времени без часового пояса. При активации в поддерживающих браузерах открывается календарь выбора даты и времени или цифровые колесики для элементов даты и времени. |
|
Поле для редактирования адреса электронной почты. Выглядит как 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, это указывает, что флажок установлен по умолчанию при загрузке страницы. Он не указывает, установлен ли флажок в данный момент: если состояние флажка изменяется, этот атрибут не отражает изменения. (Обновляется только атрибут IDLHTMLInputElement'schecked).Примечание: В отличие от других элементов управления вводом, значение флажков и радиокнопок включается в данные отправки только если они в данный момент
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/valuefruit=cherryи парыdirname/ directionfruit-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>'sforдля связывания метки с элементом управления формой. См.<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пусто, значение элемента ввода не отправляется с формой! (Отключённые элементы управления, неотмеченные радиокнопки, неотмеченные флажки и кнопки сброса также не отправляются.)Существует два особых случая:
-
_charset_: Если используется в качестве имени элемента<input>типа hidden, атрибутvalueавтоматически устанавливается браузером до используемой кодировки символов для отправки формы. -
isindex: По историческим причинам, имяisindexне разрешено.
Атрибут
nameсоздаёт уникальное поведение для радиокнопок.Одновременно может быть отмечена только одна радиокнопка в группе с одинаковым именем. Выбор любой радиокнопки в этой группе автоматически снимает выбор с любой из уже выбранных радиокнопок в той же группе. Значение выбранной радиокнопки отправляется вместе с именем, если форма отправляется.
При переключении на ряд радиокнопок с одинаковым именем, если одна из них выбрана, фокус будет переходить на неё. Если они не расположены последовательно в исходном порядке, если одна из радиокнопок выбрана, переключение фокуса на элементы группы начинается с первой выбранной радиокнопки в группе, пропуская все невыбранные. Другими словами, при выборе одной радиокнопки переключение фокуса пропускает невыбранные радиокнопки в группе. Если ни одна не выбрана, фокус переходит на радиокнопку в группе при достижении первой в том же имени группы.
После того, как фокус перешёл на одну из радиокнопок в группе, использование клавиш со стрелками позволит переходить по всем радиокнопкам с тем же именем, даже если радиокнопки не расположены последовательно в исходном порядке.
Если элементу ввода задано имя, это имя становится свойством элемента формы owning form element's
HTMLFormElement.elements. Если у вас есть элемент ввода, у которогоnameзадано какguestи другой, у которогоnameзадано какhat-size, следующий код можно использовать:jslet 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задаёт, сколько ввода будет видно. В основном, создаёт тот же результат, что и установка свойства CSSwidthс несколькими особенностями. Фактическая единица значения зависит от типа ввода. Дляpasswordиtextэто количество символов (или единицem), по умолчанию20, а для других — пиксели (или единицыpx). Свойство CSSwidthимеет приоритет над атрибутом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 во время редактирования поля; используется для определения подходящей метки для этой клавиши на виртуальной клавиатуре. Поскольку этот атрибут устарел, используйте |
orient | Устанавливает ориентацию ползунка диапазона. Только Firefox. |
results | Максимальное количество элементов, которые должны отображаться в раскрывающемся списке предыдущих запросов поиска. Только Safari. |
webkitdirectory | Булево значение, указывающее, разрешено ли пользователю выбирать только каталог (или каталоги, если также присутствует multiple) |
-
autocorrectНестандартный -
(Только Safari). Строка, которая указывает, следует ли активировать автоматическую коррекцию ошибок, пока пользователь редактирует это поле. Разрешенные значения:
-
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
| Псевдокласс | Описание |
|---|---|
: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 не отмечен.
input:checked + label { color: red; font-weight: bold; }
Селекторы атрибутов
Можно нацеливаться на различные типы элементов управления формами на основе их type с помощью селекторов атрибутов. Селекторы атрибутов 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-свойств.
::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
<label for="textInput">Note the red caret:</label> <input id="textInput" class="custom" size="32" />
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, см.:
Также см.:
Дополнительные функции
Метки
Метки необходимы для сопоставления вспомогательного текста с <input>. Элемент <label> предоставляет пояснительную информацию об элементе формы, которая всегда уместна (кроме случаев, связанных с макетом). Использование метки для пояснения того, что следует вводить в поле <input> или <textarea>, никогда не будет лишним.
Связанные метки
Семантическое связывание элементов <input> и <label> полезно для вспомогательных технологий, таких как программы чтения с экрана. Связывая их с помощью атрибута <label> for, вы связываете метку с элементом ввода таким образом, что программы чтения с экрана могут более точно описывать ввод пользователю.
Недостаточно иметь просто текст, расположенный рядом с элементом <input>. Для удобства использования и доступности требуется включение неявной или явной <label>:
<!-- 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:
<input type="time" min="20:00" max="08:00" name="overnight" />
Конкретные атрибуты и их значения могут привести к определённой ошибке ValidityState:
| Атрибут | Соответствующее свойство | Описание |
|---|---|---|
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.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Для каждого из этих булевых свойств значение true указывает, что указанная причина проверки могла завершиться неудачей, за исключением свойства valid, которое равно true если значение элемента соответствует всем ограничениям.
Если возникла ошибка, поддерживающие браузеры выведут сообщение об ошибке пользователю и не позволят отправить форму. Важное замечание: если пользовательское сообщение об ошибке имеет значение, отличное от пустой строки или null, отправка формы будет запрещена. Если нет сообщения об ошибке и ни одно из других свойств не возвращает true, valid будет true, и форму можно отправить.
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> (и родственных). Рассмотрим следующую форму:
<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, как показано ниже:
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 |
|
| Разрешенные роли ARIA |
|
| Интерфейс DOM | HTMLInputElement |
Вопросы доступности
Метки
При включении элементов ввода необходимо добавлять метки. Это необходимо для того, чтобы люди, использующие вспомогательные технологии, могли понять, для чего предназначен элемент ввода. Кроме того, щелчок или касание метки переводит фокус на связанный элемент управления формой. Это повышает доступность и удобство для пользователей с нормальным зрением, увеличивает область, которую пользователь может щелкнуть или коснуться для активации элемента управления формой. Это особенно полезно (и даже необходимо) для радиокнопок и флажков, которые имеют очень маленький размер. Для получения дополнительной информации о метках см. Метки.
Ниже приведен пример того, как связать <label> с элементом <input> в указанном выше стиле. Необходимо добавить атрибут <input> к <input>. Затем <label> должен содержать атрибут for, значение которого совпадает со значением атрибута id элемента ввода.
<label for="peas">Do you like peas?</label> <input type="checkbox" name="peas" id="peas" />
Размер
Интерактивные элементы, такие как элементы ввода формы, должны иметь достаточно большую область, чтобы их было легко активировать. Это помогает различным группам пользователей, в том числе людям с проблемами управления двигательной функцией и людям, использующим неточные методы ввода, такие как стилус или пальцы. Рекомендуется минимальный размер интерактивной области 44×44 CSS пикселей.
Спецификации
| Спецификация |
|---|
| Стандарт 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 ofopacity: 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 ofHTMLInputElement.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.42–4.4Pre-Chromium Android WebView recognizes therange 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