繁体   English   中英

如何设置Dojo小部件的内部输入元素的ID?

[英]How to set the ID of a Dojo widget's inner input element?

Dojo将几个“普通”输入元素转换为更复杂的节点结构。 例如,Dojo dijit/form/Select生成由表而不是<select>元素组成的小部件。 dojox.form.Uploader转换为将ID映射到span而不是<input id="myId" type="file"元素的对象。 等等等

为了方便,我需要一个标签映射到输入小部件,并通过运行自己的网站产生大量的红旗,因为标签for值不匹配的输入id

解决此问题的最佳方法是什么?

您可以在大多数窗口小部件上设置id属性,该属性应放在所需的内部<input>节点上。 这个小提琴为例。 如果你打开你的HTML督察对TextBox控件,您将看到外部节点的id “widget_ [我的ID]”等的widgetid你传递给插件的ID的。 深入研究外部div的内容,您将看到实际的<input>元素确实具有我传入的所需ID。

但是,对于使用隐藏的<input>来存储值的更复杂的小部件,似乎必须显式设置valueNode属性的id。 您可以在此小提琴中看到一个示例。

因此,您可以像这样以编程方式创建窗口小部件:

var select = new Select({
  ... widget properties
});
select.valueNode.id = "my_id"; // probably best to use dom-attr to set this.

如果您的小部件是以声明方式创建的,那么您将需要通过注册表,附加点或dijit#byId来访问它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM