如何获取dojo中所选的combobox项的id

时间:2012-05-08 16:54:04

标签: javascript javascript-events dojo

如何获取所选fname的fI ??

这是我的代码..

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

但不能......它说对象不支持这种性质

请帮助.. !!

1 个答案:

答案 0 :(得分:2)

它抱怨,因为dijit.byId("farmCombo")返回ComboBox,它不支持'.data'。

请尝试使用“connect”,而不要使用“watch”。你可以看到很多东西。 “价值”会让你获得纯粹的价值变化,但是如果你听'item'更改,你将获得完整的新旧商品,您可以从中检索商品ID。

e.g。

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

以下示例在单独的文本框中显示您选择的ID:

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

如果您没有指定要观看的值,您的回调会显示所有更改,这可能非常有用。