0

選択した fname の fId を取得するには?

これが私のコードです..

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");

しかし、できませんでした..オブジェクトはこのプロパティをサポートしていません

助けてください..!

4

1 に答える 1

2

dijit.byId("farmCombo")「.data」をサポートしていない ComboBox を返すため、不平を言っています。

「 」を使用する代わりに、「connect」を使用してみてくださいwatch。見ることができるものがたくさんあります。「値」は純粋な値の変更を取得しますが、「アイテム」の変更をリッスンすると、完全な古いアイテムと新しいアイテムが与えられ、そこからアイテム ID を取得できます。

例えば

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

選択した ID を別のテキスト ボックスに表示するサンプルを次に示します。

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

監視する値を指定しない場合、コールバックによってすべての変更が表示されるため、非常に便利です。

于 2012-05-08T19:55:16.097 に答える