Так что я знаю, что несколько вариантов этого вопроса задавались в прошлом, но я просто хочу посмотреть, изменилось ли что-нибудь с html5 и всем.
По сути, у меня есть веб-формы, в которых есть события, когда они меняются. (Через обмен, onclick, и т. Д.). Теперь эти формы на самом деле хранят свои значения в переменной javascript. Я понимаю, что я делаю это по-другому, и я мог бы просто позже проверить поля на предмет изменений. Однако из-за приложения, которое я создаю, наличие немедленных событий обязательно.
Проблема, с которой я сталкиваюсь, заключается в том, что такие вещи, как менеджеры паролей (и я предполагаю, что плагины, такие как roboform), изменяют значения полей формы с помощью javascript. Когда javascript изменяет эти значения, он не запускает события, которые я сейчас использую.
Теперь я знаю, что в IE есть проприетарная функция, называемая propertychange. Firefox также имеет аналогичную функцию, называемую «DOMAttrModified» (которая, я считаю, также поддерживается в IE9). Я полагаю, что каждый из них будет работать, потому что я мог бы активно наблюдать значение поля, и это событие вызывалось бы, когда javascript изменял значение. Однако, похоже, что и Chrome, и Safari не имеют схожей функции.
Мой главный вопрос: не хватает ли чего-нибудь, что позволило бы этому работать в chrome и safari (без использования settimeout)? Кроме того, будет ли способ сделать это в HTML5? Мне кажется немного глупым, что не существует стандартного способа сделать это.
Наконец, возможно ли вместо этого ОСТАНОВИТЬ такие вещи, как lastpass, от фактического заполнения ваших полей. Я знаю, что вы можете поставить autocomplete = "off", и предполагается, что они на самом деле не заполняют эти поля, но, похоже, это не работает с lastpass.