我有带数据的Dojo ComboBox
var store = new dojo.data.ItemFileReadStore( { data: {
identifier: "name",
items: [
{name:"Alabama", id:"AL"},
{name:"Alaska", id:"AK"},
{name:"American Samoa", id:"AS"},
{name:"Arizona", id:"AZ"},
{name:"Arkansas", id:"AR"},
{name:"Armed Forces Europe", id:"AE"},
{name:"Armed Forces Pacific", id:"AP"},
{name:"Armed Forces the Americas", id:"AA"},
{name:"California", id:"CA"},
{name:"Colorado", id:"CO"},
{name:"Connecticut", id:"CT"},
{name:"Delaware", id:"DE"}
]
}});
var comboBox = new dijit.form.ComboBox({
id: "stateSelect",
name: "state",
value: "-- Select --",
store: store,
searchAttr: "name"
}, "stateSelect");
我有文本框来搜索数据ID。
然后我想选择(ComboBox)那个数据。 并显示数据ID和值。
我该怎么做。
答案 0 :(得分:1)
comboBox.item是对当前所选元素的引用。
您可以通过以下方式获取商品的ID和价值:
var id = store.getValue(comboBox.item, "id");
var name = store.getValue(comboBox.item, "name");
然后使用id和name在任何需要的地方显示值...
请参阅此jsfiddle以获取示例:http://jsfiddle.net/psoares/RS2Z5/
答案 1 :(得分:1)
或者您可以在javascript ....中调用comboBox.item.id
和comboBox.item.name
以编程方式设置值(以编程方式设置dojo comboBox选择)..(这可能与您的问题无关......以防有人可能需要它) 我发现当你设置所选值时,comboBox非常简单,如果只是这样做:
comboBox.set('value', yourValue);
//such as comboBox.set('value', "Bob");
该框将更新其显示...但是当你调用comboBox.item它将返回null ....所以我做了设置dojo ComboBox的选择: //设置显示
comboBox.set('value', yourValue);
//set the actual selected item
comboBox.item = comboBox.store.query({myAttributesName:"myValue"})[0];
//such as comboBox.item = comboBox.store.query({name:"Bob"})[0] it will return the Object with name = "Bob"
然后你可以通过使用comboBox.item.myAttribute在设置选择后返回你想要的任何值.... 快乐的编码.....:p
答案 2 :(得分:0)
可以通过comboBox.item.id和comboBox.item.name访问id和值,但根据我的经验,comboBox.item为null,直到用户单击ComboBox并选择一个选项,一旦他们选择了一个选项然后使用所选的选项对象填充comboBox.item。
为了选择一个选项并设置你可以按照Vin.X建议的项目,你可以在ComboBox初始化参数' item'中设置它。 (http://dojotoolkit.org/api/?qs=1.9/dijit/form/ComboBox)
var comboBox = new dijit.form.ComboBox({
id: "stateSelect",
name: "state",
store: store,
searchAttr: "name",
item: {name:"Alabama", id:"AL"} // or store.query({name:"Alabama"})[0]
}, "stateSelect");
希望它有助于某人
答案 3 :(得分:0)
你可以在官方文档中找到答案。
dijit.byId('stateSelect').get('value')
dijit.byId('stateSelect').get('displayedValue')
答案 4 :(得分:-1)
这对我有用:
dijit.byId("mySelect").item.i.id
我不知道"我"代表但是我通过记录dijit.byId("mySelect").item