Хроме? Тут такая засада, что событие change/input не генерируются браузером до взаимодействия пользователя со страницей. Можно даже консоль открыть - всё считается и запускает события change для инпутов. Но только не программно. Программный клик, фокус, вывод в консоль Хром не учитывает. А нужно сразу после того, как сработает autofill среагировать на введенные данные. @HostListener('autofill', ["$event"]) вроде бы срабатывает на автозаполнение, но в $event только булево true, а по контролу я не вижу никаких изменений. Т.е. нужно не просто отследить факт автокомплита, но и получить значение, которое этот автокомплит добавил. Надо как-то прорываться к nativeElement, возможно в нем будет хранится автокомплитное вэлью. Но может есть возможность просто как-то напнуть Хром, чтобы он не ждал активности пользователя, а сразу запилил события change/input, чтобы штатно отслеживать изменения по control.valueChanges. Понимаю, что я немного сумбурно описал задачу. Но думаю, что тот, кто знает решение - тот и проблему поймёт. Хочется как-то обойтись без таких вот вариантов и не вешать целую директиву на множество инпутов ради одного очень частного случая https://gist.github.com/kherock/fad4c320c5894ec68373588e338955c5
если я правильно помню, то в инпуте фактически нет никакого значения, когда срабатывает автофил
Получается, нет никаких шансов его увидеть, пока браузер сам не запустит событие change?
не знаю. Можно попробовать покопаться в кишках хрома, как он с автофилом работает. Может чего путное найдется https://github.com/chromium/chromium/tree/main/chrome/browser/autofill
Обсуждают сегодня