Кратко
СкопированоАтрибут, при помощи которого форма заполняется в один клик — браузер подставит значения в соответствующие поля.
Пример
СкопированоСоздадим форму, в которую пользователь будет сам вводить имя, а при заполнении поля 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 для полей «Введите новый пароль» и «Подтвердите новый пароль», но не для поля «Введите текущий пароль». Это сделано, чтобы случайно не вписать существующий пароль, а также предложить помощь в создании безопасного пароля.