Кратко
СкопированоАтрибут, при помощи которого форма заполняется в один клик — браузер подставит значения в соответствующие поля.
Пример
СкопированоСоздадим форму, в которую пользователь будет сам вводить имя, а при заполнении поля e-mail сможет выбрать адрес почты из предложенных браузером вариантов:
<form action=""> <div> <label for="name">Введите имя</label> <input id="name" type="text" autocomplete="off"> </div> <div> <label for="email">Электронная почта</label> <input id="email" type="email" autocomplete="on"> </div> <button type="submit">Отправить</button></form>
<form action=""> <div> <label for="name">Введите имя</label> <input id="name" type="text" autocomplete="off"> </div> <div> <label for="email">Электронная почта</label> <input id="email" type="email" autocomplete="on"> </div> <button type="submit">Отправить</button> </form>
Как понять
СкопированоКогда вы заполняете формы, браузер сохраняет те или иные данные — логины, пароли, адреса и e-mail. При заполнении очередной формы браузер идёт в список сохранённой информации, выуживает оттуда данные, которые требуются для этой формы, и вставляет в соответствующие поля.
Как пишется
Скопировано<form autocomplete="on">...</form>
<form autocomplete="on">...</form>
Атрибут autocomplete
пишется внутри открывающего тега, и в кавычках прописывается его значение.
Кроме элемента <form>
, вы можете указать этот атрибут для любого поля, которое требует ввода данных — <input>
, принимающий на вход текст или число, <select>
или <textarea>
.
В зависимости от значения атрибута autocomplete
, будут подставляться данные разного типа. Ниже приведены возможные значения.
Включение и выключение автозаполнения
Скопированоoff
— отключает автозаполнение.on
— значение по умолчанию; разрешает автозаполнение.
Авторизация
Скопированоnickname
— никнейм.username
— имя пользователя или название аккаунта.email
— адрес электронной почты.current
— текущий пароль пользователя.- password new
— новый пароль.- password one
— одноразовый код для верификации пользователя.- time - code
Формы имени
Скопированоname
— полное имя.given
— имя (в странах, где дают два имени, это первое имя).- name additional
— второе имя (для стран, где дают два имени).- name family
— фамилия.- name honorific
— звание или префикс для обращения, например, «Mrs.», «Mr.», «Miss», «Ms.», «Dr.», «Mlle.».- prefix honorific
— окончание имени, например, «Jr.», «B.Sc.», «PhD.», «IV», «мл.».- suffix
Данные банковской карты и деньги
Скопированоcc
— имя (в странах, где дают два имени, это первое имя), как на банковской карте.- given - name cc
— второе имя, как на банковской карте (для стран, где дают два имени).- additional - name cc
— фамилия, как на банковской карте.- family - name cc
— полное имя в том виде, как оно указано на банковской карте.- name cc
— код безопасности (три цифры на обороте карты).- csc cc
— месяц и год окончания срока действия карты.- exp cc
— месяц окончания срока действия карты.- exp - month cc
— год окончания срока действия карты.- exp - year cc
— номер банковской карты или счёта.- number cc
— платёжная система.- type transaction
— сумма перевода.- amount transaction
— валюта перевода.- currency
Личные данные
Скопированоbday
— полная дата рождения.bday
— день рождения (число).- day bday
— месяц рождения.- month bday
— год рождения.- year language
— язык в формате языкового тега из списка BCP 47.sex
— пол или гендер.organization
— название организации.organization
— профессия или должность в организации.- title photo
- url-адрес изображения.
Адрес
Скопированоaddress
— административная единица первого уровня. Обычно это название области, региона или штата.- level1 address
— административная единица второго уровня. В странах с двумя уровнями это чаще всего название населённого пункта.- level2 address
— административная единица третьего уровня.- level3 address
— административная единица четвёртого уровня, если адрес её содержит.- level4 address
,- line1 address
,- line2 address
— отдельные строки для адресов, которые используются, если нет поля со значением- line3 street
.- address country
— код страны.country
— страна.- name street
— адрес, начиная с улицы. Не должен содержать название города, страны и индекс.- address postal
— почтовый индекс.- code
Телефон
Скопированоtel
— полный номер телефона, включая код страны.tel
— телефонный код региона страны.- area - code tel
— телефонный код страны.- country - code tel
— добавочный номер.- extension tel
— номер телефона без кодов страны и региона.- local tel
— номер локальной АТС.- local - prefix tel
— номер абонента внутри сети АТС.- local - suffix tel
— номер телефона без кода страны.- national
Ссылки
Скопированоimpp
— адрес сервера для мессенджера, например, xmpp:username@example.net.url
— адрес сайта.
Подсказки
Скопировано💡 Автозаполнение может быть отключено в настройках браузера.
💡 Если автозаполнение не отключено в браузере и атрибут autocomplete
не прописан в теге, то его значение по умолчанию принимается за on
.
💡 Если задать autocomplete
для <form>
, то это сработает для всех вложенных элементов формы.
На практике
Скопированосоветует Скопировано
🛠 Значение атрибута может перебиваться значениями, прописанными в дочерних элементах.
<form action="" autocomplete="off"> <div> <label for="name">Введите имя</label> <input id="name" type="text"> </div> <div> <label for="email">Электронная почта</label> <input id="email" type="email" autocomplete="on"> </div> <button type="submit">Отправить</button></form>
<form action="" autocomplete="off"> <div> <label for="name">Введите имя</label> <input id="name" type="text"> </div> <div> <label for="email">Электронная почта</label> <input id="email" type="email" autocomplete="on"> </div> <button type="submit">Отправить</button> </form>
Первый <input>
унаследует значение от родительского элемента <form>
и не будет заполняться автоматически. Для второго <input>
уже будет работать автозаполнение, поскольку для него прописан autocomplete
.
🛠 Для правильного автозаполнения желательно, чтобы:
- у элементов
<input>
,<select>
и<textarea>
были прописаны атрибутыname
илиid
; - они были обёрнуты в тег
<form>
; - сама форма имела кнопку отправки —
<input>
или<button>
с атрибутомtype
.= "submit"
🛠 Если пользователь должен ввести имя, рекомендуется использовать значение autocomplete
вместо разделения на поля с отдельными частями имени, потому что имена могут иметь совершенно разную структуру.
🛠 По той же причине рекомендуется использовать значение autocomplete
, если нужно вводить данные банковской карты.
🛠 При создании нового аккаунта или изменении пароля следует использовать autocomplete
для полей «Введите новый пароль» и «Подтвердите новый пароль», но не для поля «Введите текущий пароль». Это сделано, чтобы случайно не вписать существующий пароль, а также предложить помощь в создании безопасного пароля.