У меня есть текстовое поле ввода и две кнопки, одна «Очистить», а другая «Сохранить», реализованная в xul в типичной раскладке, подобной этой:
<textbox id="inputTextbox" placeholder="Enter here a new entry" value = ""
oninput="enableBtns(event);"/>
<button id="clearBtn" label="Clear" accesskey="C" disabled="true"
oncommand="clearField();"/>
<button id="saveBtn" label="Save" accesskey="S" disabled="true"
oncommand="saveEntry();"/>
Я хочу сделать это: Изначальнокнопки отключены.Когда я помещаю текст в текстовое поле, кнопки становятся активными.Если я нажму одну из них, текст будет очищен или сохранен соответствующим образом, и кнопки снова отключатся.
Я могу легко выполнить эту функцию с помощью атрибута "oninput", используя этот код в моем js:
enableBtns: function(event) {
document.getElementById("clearBtn").disabled = !document.getElementById("inputTextbox").value;
document.getElementById("saveBtn").disabled = !document.getElementById("inputTextbox").value; },
Теперь моя проблема заключается в том, как добиться той же функциональности для состояния кнопки,без использования атрибута «oninput», но с использованием наблюдателя.Итак, как мне зарегистрировать наблюдателя при загрузке диалогового окна, чтобы отслеживать текстовое поле для ввода и изменять состояние кнопок?(если текстовое поле не пустое)
Я прочитал много связанных статей по MDN , но во всех случаях они упоминают ситуации и примеры, в которых наблюдатель используется для отслеживания изменений в настройках расширения.Я хочу использовать наблюдателя динамически в качестве «датчика» для изменений в текстовом поле.Как я могу это сделать .. ??
Любая информация, ресурсы и примеры кода для работы над ним, будет очень признателен!
Спасибо