0

我正在尝试使用 dojo 的几个选项更改输入文本框的值,但不知何故这些都不起作用。另一方面,当我尝试使用 document.getElememtById 选项更改文本时,我可以这样做。有人可以解释为什么我的道场选项不起作用吗?

   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"/>
4

2 回答 2

0

我不确定这是否只是此代码中的拼写错误,但您写"AuthPassowrd"的是"AuthPassword". 如果只是这里的情况(而不是真正的代码),请阅读我的原始答案。


原始答案

您确定您导入了正确的模块(dojo/domdojo/dom-attrdojo/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 节点中删除所有子节点。文本框的值不是子节点,所以它不起作用。

于 2013-09-11T07:25:05.823 回答
0

你应该替换这个:

domAttr.set("AuthPassowrd", "value", "");

和:

domAttr.set(dom.byId("AuthPassword"), "value", "");
于 2013-09-11T07:26:40.353 回答