如何在Dojo中向下拉框(combobox)中添加项目?

3

我有一个表单,里面有两个下拉框。其中一个是普通的下拉框,另一个是 dijit.form.Combobox

<select id="mySel"></select>

<select dojotype="dijit.form.ComboBox" id="dsel"/>

我能通过以下脚本向常规项目中添加项目。
var opt = mySel.appendChild(document.createElement('option'));
opt.text = "My sample text"

但是在 dijit combo 中这个方法不起作用。怎么办?
1个回答

4
问题在于Dojo会将DOM节点(即<select>)解析为完全不同的东西。Dojo内部使用存储库来保存下拉框的选项。
要向下拉框添加选项,您需要访问下拉框的存储库并向其添加新项目。您可以在ComboBoxStore API的Dojo API中阅读更多信息。
在存储API中,您会注意到一个名为add()的函数。如果您使用该函数,则可以向存储库添加新项目。代码应类似于:
registry.byId("dsel").get('store').add({ name: "Test", id: 1 });

完整的JSFiddle可以在这里找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接