Для chrome: -webkit-autofill класс работает отлично.
Для решения, независимого от браузера, которое я обнаружил, событие mouseleave вызывается всякий раз, когда мышь находится над выпадающим списком автозаполнения браузера. Вы можете написать обработчик для ввода или его родительских элементов или окна событий. см. код ниже.
В HTML:
<div id="banner-message">
<div>
<input type="text" id="name" name="name" placeholder="name"/>
</div>
<div>
<input type="text" id="email" name="email" placeholder="email"/>
</div>
<div>
<input type="password" name="password" placeholder="password"/>
</div>
</div>
<div id="event-log"> </div>
В jQuery:
var banner = $("#banner-message")
var eventlog = $("#event-log");
var inputs = $("input");
//Following event fired when hovered over autofill dropdown,
banner.on("mouseleave", function(event) {
var targetid = event.target.id;
eventlog.html('Source id::'+targetid);
});
В приведенном выше коде, когда событие вызывается, event.target - это элемент, от которого указатель остается и вводится в раскрывающемся списке.
Следует отметить, что вы должны определить правильный способ обнаружения отпускания мыши, который срабатывает только при автозаполнении. Приведенное выше решение сработало для меня.
см. Эту скрипку: https://jsfiddle.net/nilesh_ramteke/nt7a1ruw/20/
Пожалуйста, настройте ваш браузер на автозаполнение, прежде чем пытаться найти решение выше.