Автозаполнение форм. Как реализуется?

wilelf
На сайте с 27.06.2005
Offline
322
766

Интересует автозаполнение форм на страницах сайта. Не плагинами для браузера, а как это делает Яндекс, например.

Т.е. при заполнении поля Имя заполняем поля телефон и email.

Агентство контекстной рекламы НеВсем ( https://www.nevsem.ru/ ) Пишу платно статьи для Хабра. Мой профиль ( https://habr.com/ru/users/wilelf/ )
K
На сайте с 03.06.2015
Offline
45
#1

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

Ну а по впоросу, то из куков надо брать данные и заполнять. Разумеется в куки сперва надо записать.

MYSQL PHP JS HTML CSS SEO TXT США СССР
totamon
На сайте с 12.05.2007
Offline
437
#2
чтобы подсказать браузеру, что он может автоматически ввести в форму имя пользователя, его адрес электронной почты и номер телефона

https://developers.google.com/web/fundamentals/input/form/label-and-name-inputs

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
K
На сайте с 03.06.2015
Offline
45
#3

Никто этих бредовых рекомендаций соблюдать не станет, ну, кроме может быть макофилов, которым как скажут, так они и сделают. Смысл в том что это мы указываем браузеру что делать, а не он нам.

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

totamon
На сайте с 12.05.2007
Offline
437
#4
kostyanet:
Смысл в том что это мы указываем браузеру что делать, а не он нам.

ну про это гугл и пишет в своих рекомендациях))

kostyanet:
это уже явный бред.

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

K
На сайте с 03.06.2015
Offline
45
#5

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

Абстрактный код


for(var d=localStorage.formdata,
f=document.getElementById('form-data'),
elems=f.elements, i, elem; elem=elems; i++ )
if(elem.name && elem.name in d)
elem.value=d[elem.name];

Вот и все. Еще можно приделать проверку типа и типа силекты с чек-боксами восстанавливать. Кстати, это браузеры умеют?

ЗЫ На сервере придется юзать куки, так чта и на клиенте их тоже желательно для сквозняка. Заполнить же поля прямо на сервере вообще элементарно.

Да, запись


for(var d=localStorage.formdata,
f=document.getElementById('form-data'),
elems=f.elements, i, elem; elem=elems; i++ )
if(elem.name)
d[elem.name]=elem.value;

врезается после успешной валидации и до отгрузки.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий