我正在尝试使用几个dojo选项来更改输入文本框的值,但不知何故这些选项不起作用。另一方面,当我尝试使用document.getElememtById选项更改文本时,我能够这样做。有人可以解释为什么我的dojo选项不起作用吗?
if (response.responseJSON.errorMessage){
dom.byId("AuthInfo").innerHTML=response.responseJSON.errorMessage;
// dom.byId("AuthPassowrd").value="";
// domAttr.set("AuthPassowrd", "value", "");
// domConstruct.empty("AuthPassword");
document.getElementById("AuthPassword").value="";
}
我的html代码是 -
<input type="password" placeholder="Enter password" id="AuthPassword"/>
答案 0 :(得分:0)
我不确定这段代码中是否只是一个拼写错误,但你写的是"AuthPassowrd"
而不是"AuthPassword"
。如果只是这里的情况(而不是真实的代码),请阅读我的原始答案。
您确定导入了正确的模块(dojo/dom
,dojo/dom-attr
和dojo/dom-construct
)吗?这些例子对我来说很好。我做了一个JSFiddle来向你展示它是如何工作的。您可以使用以下方法导入这些模块:
require(["dojo/dom", "dojo/dom-attr", "dojo/dom-construct"], function(dom, domAttr, domConstruct) {
// Here you can use dom, domAttr and domConstruct
});
确保在执行命令之前加载DOM。 DOM节点上的操作只能在加载DOM(或整个页面)的那一部分时执行。通常,您可以等到DOM准备好dojo/domReady!
插件:
require(["dojo/domReady!], function() {
// Will only be executed when the dom is ready
});
在您使用domConstruct.empty("AuthPassword");
的第三行注释代码中。这不适用于清除输入字段,但用于从DOM节点中删除所有子节点。文本框的值不是子节点,因此不起作用。
答案 1 :(得分:0)
你应该替换它:
domAttr.set("AuthPassowrd", "value", "");
使用:
domAttr.set(dom.byId("AuthPassword"), "value", "");