如何使用dojo获取组合框中基础记录的ID?我已经尝试更改以下示例,但我能得到的是向用户显示的文本(每个数组元素的“name”属性),而不是州的双字母缩写(“id”属性)。
http://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html#id3
感谢。 PS,我是道场的总菜鸟。这是我的第一个实验。
答案 0 :(得分:2)
就像@CodeCrisis所说,你可以使用dijit.byId('stateSelect').item
来获取该项目。虽然我对文档的过时程度不满意(dijit.byId()
命令已被弃用),但这是一个合适的1.10解决方案:
query("button").on('click', function() {
console.log(comboBox.get('item'));
});
这将返回商店中的所选记录(在这种情况下包含id
和name
属性)。
可在此处找到完整的工作示例:http://jsfiddle.net/zt6xggL8/
答案 1 :(得分:1)
这个怎么样......
基于给出的链接
http://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html#id3
更改此onclick功能
onClick="alert(dijit.byId('stateSelect').get('value'))"
进入
onClick="alert(dijit.byId('stateSelect').item.id)"
我知道这不是最好的答案,但我希望这会对你有帮助..
查看Philippe的回答 Dojo : ComboBox selected and show data id
呵呵呵呵...... 只是路过...答案 2 :(得分:1)
不是最漂亮的,但这有效。基本上需要查询'商店'当您使用' value'时显示的名称的变量。 [0]
表示商店列表中的第一个对象,因此如果您有多个具有相同名称的对象,则需要使用foreach()
函数。
<button onClick="var namevar=dijit.byId('stateSelect').get('value');
alert(dijit.byId('stateSelect').get('store').query({name:namevar})[0].id);">
Get value
</button>