2012-05-08 34 views
0

選択したfnameのfIdを取得する方法は?コンボボックスの選択項目のIDを取得する方法

ここに私のコードだ...

var fS = new Memory({ //store for the combo 
    data: [ 
     {fN:"", fId:""} 
    ] 
}); 
var fCombo = new ComboBox({   //combo box 
     id: "fCombo", 
     name: "fCombo", 
     value: "Select",    
     searchAttr: "fName" 
    }, "fCombo");  
    fCombo.store = fStore; 
    dojo.xhrPost({ 
    url: "XXX", 
    handleAs: "json", 
    load: function(response, ioArgs){    
      fCombo.store.data = response.xx; 
      return response; 
      }, 
    error: function(response, ioArgs){ 
      console.log("Error", response+' '+ioArgs); 
      return response; 
      } 
     }); 

dojo.connect(dijit.byId("fCombo"), 'onChange',function(e){ 
    //code to write based on f id 
} 

私は

var Id = fStore.getValue(dijit.byId("fCombo").data, "fName"); 

。これを試してみました。しかし...それは助けてくださいオブジェクトがこのproperttyに

をsupprtていないと言うことができませんでした。 !!

答えて

2

dijit.byId("farmCombo")は「.DATA」をサポートしていないコンボボックスを返すので、それは文句を言っています。

代わりの 'connect' を使用して、 'watch' を使用してみてください。あなたが見ることができるものがたくさんあります。 'value'はあなたの純粋な価値の変化をもたらしますが、 'item'の変更を聞くと古いアイテムと新しいアイテムが完全に与えられ、item idを取得できます。

あなたが見てどの値を指定しない場合は、あなたのコールバックがいることができ、あなたのすべての変更が表示されます

http://jsfiddle.net/RoystonS/cH6hf/

:ここ

farmCombo.watch("item", function(what, oldVal, newVal) { 
    // selected farmid is newVal.farmId 
}); 

は別のテキストボックスにあなたの選択したIDを表示するサンプルです非常に便利です。

関連する問題