Dojo:选择ComboBox并显示数据ID

时间:2012-01-05 08:59:15

标签: combobox dojo

我有带数据的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和值。

我该怎么做。

5 个答案:

答案 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.idcomboBox.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)

你可以在官方文档中找到答案。

http://dojotoolkit.org/reference-guide/1.8/dijit/form/FilteringSelect.html#dijit-form-filteringselect

dijit.byId('stateSelect').get('value')
dijit.byId('stateSelect').get('displayedValue')

答案 4 :(得分:-1)

这对我有用:

dijit.byId("mySelect").item.i.id

我不知道"我"代表但是我通过记录dijit.byId("mySelect").item

的内容得到了它