2012-05-13 6 views
1
var xhrArgs = { 
    url: "../Person/GetAll", 
     handleAs: "json", 
     preventCache: true, 
     load: function (data, ioargs) { 
      var jsonString = dojo.toJson(data) 
      var dataStore = new dojo.store.Memory({ data: 
      dojo.fromJson(jsonString) }); 
    var personCmb = dijit.byId('cmbSingers'); 
         if (personCmb == null) 
{ 
    var cobox = new dijit.form.ComboBox({ id: "cmbSingers", name: "Name", store: dataStore, searchAttr: "Name" }, "cmbSingers"); 

           cobox.startup(); 
          } 

    function cmbSingers_OnSelected() { 

       alert(dijit.byId('cmbSingers').get('value')); **this return the Text, But I want to get Id of Select value**  

      } 
+0

あなたはあなたのjsonがどのように見えるかを伝える必要があります。コンボボックスにはvalueAttrだけがありますので、jsonをループし、item.nameとcobox.get( "value")を照合してそのようなアイテムを取得します。多くの店舗には、このルックアップを正確に活用するクエリ機能があります – mschr

+0

ID、名前、年齢などのように – pradeep

答えて

0

Mkay、jsonはそうですか?

{ identifier: 'Id', items: [ { Id: '1', name:'foo', age: 12 }, { Id: '2', name:'bar', age: 30 } ] }

そして、あなたは変数coboxdijit.form.ComboBox、変数storeであなたのdojo.data.ItemFileReadStoreを持っています。 2016 + ... にこれに対する解決策を探している人のために

dojo.connect(cobox, "onChange", function() { 

    var val = this.get("value"), 
    id = "", 
    matcher = new RegExp("^" + val + "$"); 

    dojo.some(store._arrayOfAllItems, function(item, idx) { 

    if(matcher.test(store.getValue(item, "name")) { 
     id = store.getValue(item, "Id"); 
     return true; // breaks .some loop 
    } 
    }); 

}); 
0

私は同じような状況に遭遇したと道場コンボボックスから選択したオプションの値を取得する方法を発見しました。

dijit.byId('someComboBox').item.value 

使用するため.itemは、このようなオブジェクトを返します: オブジェクト{ID: "1" だけではなく、.VALUEかに.get( '値')、.item.valueを使用を使用します、値:「1」、名前:「ワン」}

は、詳述すると...あなたはを使用して、コンボボックスのオプションを定義すると言うので、同じようを選択:

<select dojoType="dijit.form.ComboBox" id="someComboBox" maxlength="30"> 
    <option value=""></option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 

は、選択したと言います"One"オプション。 dijit.byId( 'someComboBox')。値"ワン"、 を返しますを呼び出すが、dijit.byId( 'someComboBox')を呼び出す
。item.valueは
戻ります"1"

関連する問題