Как узнать что браузер сделал автозаполнение

У нас есть форма, например логинка. В ней два поля ввода: электронный адрес и пароль. И после первого входа я попросил броузер запомнить введённые значения полей по понятным причинам. При повторном открытии логинки в текстовые поля вставятся значения.

Пример когда броузер подставил пароль(обвёл желтым): введите сюда описание изображения

Как я могу узнать, что броузер сделал это?


Ответы (2 шт):

Автор решения: Joker

В общем случае, есть как минимум два варианта решения:

  1. Использовать MutationObserver на изменение атрибута value целевого элемента
  2. Использовать EventListeners на событие change целевого элемента

Конечно, можно вызывать функцию по таймеру, в которой проверять заполненность поля, но мне такое решение не нравится.

→ Ссылка
Автор решения: Roman Konoval

После автозаполнения поля браузер меняет цвет фона. Поэтому действенный способ - это в обработчике изменения элемента прорерить не поменялся ли цвет фона элемента:

  let style = window.getComputedStyle(document.getElementById('password'))
  if (style && style.backgroundColor !== initialBackgroundColor) {
    // сюда попадаем если браузер заполнил автоматически
  }

initialBackgroundColor - ставим такой как у нас изначально.

→ Ссылка