На странице имеется поле ввода и кнопка. Нужно залочить кнопку при изменении содержимого текстового поля.
Делаю так: определяю событие 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 не сработает, скорее всего).
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.