Как в JS залочить кнопку немедленно, без клика по ней?

программирование JavaScript

На странице имеется поле ввода и кнопка. Нужно залочить кнопку при изменении содержимого текстового поля.

Делаю так: определяю событие onchange для поля, в котором меняю атрибут кнопки disabled на true.

Результат - кнопка лочится, но видно это только после щелчка по ней, а хочется немедленно менять её статус в процессе изменения поля ввода. Пробовал еще добавлять button_id.update() в обработчик события onchange, но бестолку. Как правильно реализовывать такое на JS?

Примечание:
Похоже, разобрался.

Событие onChange вызывается в момент потери фокуса поля ввода. Отдельного события изменения содержимого текстового поля без потери фокуса за 15 лет существования javascript так и не ввели. Придется использовать таймеры и проверять изменения поля вручную. Кажется понятно, почему страницы с JS отображаются, как правило, с жуткими тормозами.

Примечание:
за oninput спасибо, конечно, но я уже нашел другое, кроссбраузерное решение:
Form.Element.Observer из prototype js framework. Использует таймеры, конечно, но может быть потом переделаю на предложенный вами event.

Кстати, посмотрел вот в этом списке, http://www.w3schools.com/html5/html5_ref_eventattributes.asp
Событие oninput появилось только в HTML 5 (и на старом XHTML не сработает, скорее всего).
Ответы:
Тебе нужно тогда события клавиатуры отлавливать
----------------------------
Кстати у меня в хроме при любом значении атрибута disabled кнопка отключена(в том числе false  или enabled)
помогает только удаление атрибута
onchange вызывается для поля только после того как поле потеряет фокус ввода (и само собой только если в поле было изменен текст). Сделано так их соображений оптимизации. Если вам нужно обновлять статус кнопки постоянно при вводе текста - биндитесь на события onpropertychange для IE, и на oninput для всех остальных браузеров.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.