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”的组合框。

不要使用“ connect”,而是尝试使用“ watch”。有很多东西你可以看。'value' 会得到你的纯值变化,但如果你听 'item' 变化,你会得到完整的旧项目和新项目,你可以从中检索你的项目 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 回答