2012-01-05 12 views
1

私はデータ道場:ComboBoxの選択およびshowデータ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とあなたの項目の値を取得することができます。そして、あなたはあなたがする必要がどこに値を表示するには、IDと名前を使用し

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

...

例えば、このjsfiddleを参照してください。 :http://jsfiddle.net/psoares/RS2Z5/

+0

Thxを非常に。IDと名前を取得できるようになりましたが、ユーザーがcomboBoxで検索するためにデータ(id)を送信するときに、 ' のように選択して追加する方法はわかりません。 – OammieR

+0

comboBox.itemが 'null 'になっています –

1

それともJavaScriptでcomboBox.item.idcomboBox.item.nameを呼び出すことができます....

をprogrammically値を設定するには(これはあなたの質問に相対的ではないかもしれません...) 私は、選択した値を設定したときにcomboBoxがかなりバギーであることを発見しました。

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

ボックスには、その表示を更新します...しかし、あなたはcomboBox.itemを呼び出すとき、それは私が道場のコンボボックスの選択を設定しましたので、どのような....ヌルを返します。表示

を設定 //
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を使用して、選択した後に任意の値を返すようにしても問題ありません。 ハッピーコーディング.....:

0

idと値にはcomboBox.item.idとcomboBox.item.nameでアクセスできますが、私の経験ではcomboBox.itemはヌルです。 ComboBoxを選択してオプションを選択すると、オプションを選択すると、comboBox.itemに選択されたオプションオブジェクトが設定されます。

Vin.Xが提案したり、コンボボックスの初期化パラメータ「アイテム」でそれを設定することができますようオプションを選択して、あなたが行うことができます項目を設定するために(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 

私は「i」は何の略かわかりませんが、私はの内容をロギングすることでそれを得ました10

+0

これはすべてのケースでうまくいくかどうかは疑問です。私はもっ​​と良い解決策はフィリップかVin.Xによって提供された答えを使用することだと思います。 – g00glen00b

関連する問題