如何从 dojo/dijit 组合框中获取 ID 和文本?

How do get id & text from a dojo/dijit combobox?

如何使用 dojo 获取组合框中基础记录的 ID?我尝试更改以下示例,但我所能得到的只是向用户显示的文本(每个数组元素的 "name" 属性),而不是州的两个字母缩写("id" 属性) .

http://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html#id3

谢谢。 PS,我是道场的菜鸟。这是我的第一个实验。

这个怎么样...
基于给定的 link
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

呵呵呵呵...:) 只是路过...

不是最漂亮的,但这个很管用。基本上需要查询 'store' 变量以获取当您使用 '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>

就像@CodeCrisis说的,你可以使用dijit.byId('stateSelect').item获得物品。虽然我对文档的过时程度不太满意(dijit.byId()命令已弃用),但这是一个合适的 1.10 解决方案:

query("button").on('click', function() {
   console.log(comboBox.get('item')); 
});

这将 return 存储中的选定记录(在本例中包含 idname 属性)。

可以在此处找到完整的工作示例:http://jsfiddle.net/zt6xggL8/