При разработке пользовательского интерфейса часто надо отслеживать изменения в полях ввода «налету», средствами JavaScript.
Самый простой способ это отлавливать событие onkeyup и проверять содержимое поля. Событие возникает после нажатия любой клавиши на клавиатуре, когда значение в поле input или textarea уже изменилось.
Обработка keyup покрывает почти все возможне моменты. Но возникают проблемы при вставке текста из буфера обмена (с помощью мыши — клик правой кнопкой и выбор пункта «Вставить»), а также если пользователь выбрал значение из списка автодополнения, которое показывает браузер. В этом случае события keyup не происходит и алгоритм дает сбой.
После поиска в интернете и метода «проб и ошибок» был сгенерировани следующий код (на prototype, но думаю что смысл его понятен)
element.observe("keyup", changeElement) .observe("propertychange", changeElement) .observe("blur", changeElement) .observe("input", changeElement);
В этом примере функция changeElement вызывается при любом изменении текста в поле element. И уже внутри этой функции можно делать проверки или добавлять интерактив на страницу.