【发布时间】:2011-12-07 22:13:05
【问题描述】:
我有一个输入文本框和两个按钮,一个是“清除”,另一个是“保存”,在 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 上阅读了许多相关文章,但在所有情况下,它们都提到了观察者用于监视扩展首选项变化的情况和示例。我想动态地使用观察者作为文本框中变化的“传感器”。我该怎么办??
非常感谢任何信息、资源和示例代码!
谢谢
【问题讨论】:
标签: javascript firefox textbox observer-pattern monitor