Каждый раз, когда мне нужно написать фрагмент JavaScript, который контролирует поле ввода, я обычно заканчиваю тем, что делаю что-то вроде:
$("#field").keyup(myHandler).keydown(myHandler).change(myHandler);
Это не идеально, но обычно работает в большинстве случаев, и поэтому я продолжаю. У меня просто есть немного времени, чтобы разобраться в этом должным образом. Вероятно, основная проблема заключается в том, что он не улавливает правки, сделанные мышью (щелчок правой кнопкой мыши + вставка / вырезка). Кроме того, это не совсем то, что я хочу. Это фиксирует все движения курсора и другие события клавиатуры, которые меня не особо интересуют. Поэтому вопрос:
Существует ли надежное кросс-браузерное событие, которое запускается каждый раз, когда после изменяется содержимое ввода или текстовой области?
Во время краткого поиска я обнаружил события onpropertychange и DOMAttrModified. Но, кроме того, что они работают не во всех браузерах, они не запускаются при редактировании ввода или текстовой области.