Всякий раз, когда текст в элементе управления ввода изменяется, мне нужно немедленно обновить некоторые вещи. Но я не могу найти подходящее событие для этого.Какое правильное событие javascript для любого изменения текста в элементе управления ввода текста?
onchange только срабатывает, когда вы покидаете окно ввода (например, откройте или нажмите на внешнюю сторону).
OnKeyPress пожары до того производится изменение, и оно срабатывает на любой нажатием клавиши (например, также курсора влево & право, которое не вызывает никаких изменений в тексте)
- OnKeyDown и OnKeyUp также огонь по любой ключа (даже как Сдвиг и т.д., которые не вызывают какие-либо изменений в тексте)
Кроме того, ни один из них не кажется, срабатывает при нажатии правой кнопки мыши + вставки из буфера обмена с помощью мыши. Или при изменении значения из JS (т. Е. Делая input.value = что-то из другого места).
Минимальный пример: http://jsfiddle.net/nggAm/
Что я должен делать? Я предполагаю, что один из способов, которыми я мог бы обойти это (ну, в основном), устанавливать ВСЕ события в один общий обработчик событий, кэшировать его там и выполнять фактическое обновление при изменении строки. Но это кажется немного дрянным. Что такое правильно способ сделать это?
К сожалению, [мутационные события] (https://developer.mozilla.org/en/DOM/Mutation_events) не являются ни кросс-браузер и не рекомендуется. –