我有一个Dojo组合框,它是使用标准HTML select声明创建的,在一个单独的文本框上有一个onChange事件,它调用一个函数通过XHR从服务器获取数据,响应数据的元素成为下拉列表的新选项。
我在网上试了很多例子,但到目前为止都没有成功。这是我目前正在尝试的代码,没有任何错误。事实上,当我在put之后查看存储的内容时,数据就在那里。
当我在设置数据后单击下拉菜单时,我收到错误“_AutoCompleterMixin.js.uncompressed.js:557未捕获的类型错误:无法读取未定义”“的属性”toString“:
var newOptions = new Array();
for (var i = 0; i < jsonData.length; i++) {
newOptions[i] = { value: jsonData[i].dataID,
label: jsonData[i].dataName,
selected: i == 0};
}
var select = registry.byId("combobox");
select.store.put(newOptions, { overwrite: true });
以及“select.store.data =新选项;并且还移动代码,使“select.store.add(option)”位于循环内。
尽管在这三种情况下都填充了combobox存储,但我仍然得到相同的错误:数据中没有空值,数据中没有空值。
我遗漏了什么?在DOJO文档或其他任何地方,任何地方的示例都没有这个问题,即使是工作的JSFiddle示例。
除了添加一个或两个以上的硬编码值之外,我根本看不出有什么区别。
1条答案
按热度按时间zzwlnbp81#
它需要:
不