Pull to refresh

Polyfill для обхода проблемы с браузерным автозаполнением форм

Reading time 1 min
Views 9K
Год назад в репозитории AngularJS был создан issue #1460 «Form model doesn't update on autocomplete».

Браузер, при автозаполнении формы ранее сохраненными данными (например, вводим email — браузер заполняет пароль автоматически) никак не извещает javascript о новых данных в поле.

За время существование этой проблемы были написаны различные костыли, которые можно оценить в комментариях к issue. Сейчас же появился костыль официальный. И пока разработчики браузеров на проблему внимания не обращают, это оптимальное решение — Autofill event polyfill.

Придется подключать еще один скрипт. Принцип работы таков — по «DOMContentLoaded» скрипт пробегает по полям и запоминает их текущее значение value, после таймаута в 200 милисекунд сравнивает сохраненное ранее значение с текущим, если они отличаются — вызывается событие «change» для поля. По событию «blur» для одного из полей, снова запускается проверка.

Ссылки:
Autofill event polyfill
issue #1460
Tags:
Hubs:
+12
Comments 11
Comments Comments 11

Articles