Вы можете проверить с помощью оператора in
:
"onpropertychange" in input
Этот вид тестирования функций не работает в более старых версиях Firefox, которые сообщают о событии false
для свойств обработчика событий, соответствующих событиямкоторые существуют, но это не проблема здесь, потому что Firefox в настоящее время не поддерживает событие propertychange
и вряд ли будет в будущем.
Вот некоторые предпосылки: http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
Еще один момент: вам нужны отдельные функции для обработки событий propertychange
и input
, потому что в обработчике propertychange
вам нужно проверить, изменилось ли свойство value
.В противном случае вы в конечном итоге будете обрабатывать изменения в любом свойстве ввода.
input.onpropertychange = function(evt) {
evt = evt || window.event;
if (evt.propertyName == "value") {
// Do stuff here
}
};