Обработка изменений в поле input

При разработке пользовательского интерфейса часто надо отслеживать изменения в полях ввода «налету», средствами JavaScript.
Самый простой способ это отлавливать событие onkeyup и проверять содержимое поля. Событие возникает после нажатия любой клавиши на клавиатуре, когда значение в поле input или textarea уже изменилось.

Обработка keyup покрывает почти все возможне моменты. Но возникают проблемы при вставке текста из буфера обмена (с помощью мыши — клик правой кнопкой и выбор пункта «Вставить»), а также если пользователь выбрал значение из списка автодополнения, которое показывает браузер. В этом случае события keyup не происходит и алгоритм дает сбой.

После поиска в интернете и метода «проб и ошибок» был сгенерировани следующий код (на prototype, но думаю что смысл его понятен)

element.observe("keyup", changeElement)
            .observe("propertychange", changeElement)
            .observe("blur", changeElement)
            .observe("input", changeElement);

В этом примере функция changeElement вызывается при любом изменении текста в поле element. И уже внутри этой функции можно делать проверки или добавлять интерактив на страницу.

Запись опубликована в рубрике Полезности с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий