2012-01-05 69 views
1

我有道場的組合框數據道場:組合框選擇和顯示數據ID

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和值。

我該怎麼做。

回答

1

comboBox.item是對當前選定元素的引用。

你可以得到的ID,並通過您的產品價值:

var id = store.getValue(comboBox.item, "id"); 
var name = store.getValue(comboBox.item, "name"); 

然後使用ID和姓名顯示值你需要的地方......

看到這個的jsfiddle爲例:http://jsfiddle.net/psoares/RS2Z5/

+0

THX非常多。現在我可以獲得ID和姓名,但我不知道如何添加選擇,如當用戶提交數據(id)以在comboBox中搜索時,選擇類似於 '' 「 。 – OammieR 2012-01-06 02:48:41

+0

comboBox.item即將作爲'null' – 2014-02-01 13:03:53

1

或者你可以撥打comboBox.item.id,並在javascript comboBox.item.name ....

要programmically設定值(編程設置dojo組合框選擇)..(這可能不是相對於你的問題...以防萬一有人可能需要它) 我發現comboBox是相當buggie當你設置選定的值,如果你只是這樣做:

comboBox.set('value', yourValue); 
//such as comboBox.set('value', "Bob"); 

框將更新其顯示...但是,當你調用comboBox.item它會返回null ....所以我做了什麼設置道場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

0

可以通過comboBox.item.id和comboBox.item.name訪問id和value,但以我的經驗,comboBox.item爲null,直到用戶單擊ComboBox並選擇一個選項,一旦他們選擇了一個選項,那麼comboBox.item將被選中的選項對象填充。

爲了選擇一個選項,並設置你可以做Vin.X建議,或者你可以將其設置在ComboBox初始化參數「項目」的項目(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"); 

希望這可以幫助別人

-1

這爲我工作:

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

我不知道什麼是「我」代表,但我通過日誌內容得到了它10

+0

我懷疑這是否會在所有情況下都能正常工作。我認爲更好的解決方案是使用Philippe或Vin.X提供的答案。 – g00glen00b 2014-05-14 06:57:29

相關問題