Autofill event polyfill
This is a polyfill that fires change events when browsers autofill form fields without firing a change event. The implementation is generic so it works in any application that uses either jQuery and/or Angular.
bower install autofill-event
Add the script
autofill-event.js after jQuery or Angular in your page.
This will do the following:
- after DOMContentLoaded: check all input fields
- a field is left: check all other fields in the same form
API (to manually trigger the check):
$el.checkAndTriggerAutoFillEvent(): Execute the check for all DOM elements in the given jQuery / jQLite element.
How it works
$el.val()for jQuery / jQLite elements). That changed value is stored on the element in a private property.
Checking an element for auto fill: Compare the current
valueof the element with the remembered value. If it's different, trigger a change event.
AngularJS or jQuery (works with either one or both)
Unit tests (Travis CI)
npm install karma -g
- Run tests with jQuery:
karma start test/unit/config/karma-jquery.conf.js
- Run tests with Angular:
karma start test/unit/config/karma-angular.conf.js
Manual Tests (live version)
- open the manual runner and follow instructions
- They need to be run with a webserver and without iframes, otherwise Chrome would not autofill username/password