怎么得到id&来自道场/ dijit组合框的文字?

时间:2015-01-05 04:10:05

标签: combobox dojo

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

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

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

3 个答案:

答案 0 :(得分:2)

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

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

这将返回商店中的所选记录(在这种情况下包含idname属性)。

可在此处找到完整的工作示例: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>