如何在dojo中获取组合框的选中项的id

gt0wga4j  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(172)

如何获取所选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");

但无法..它说对象不支持此属性
救命啊!

iezvtpos

iezvtpos1#

这是因为dijit.byId("farmCombo")返回了ComboBox,而ComboBox不支持“. data”。
不要使用' connect ',尝试使用' watch '。有很多东西可以观看。'value'将让你看到你的纯值变化,但如果你听到'item'变化,你会得到完整的旧项目和新项目,从中你可以检索你的项目ID。
例如:

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

下面是一个在单独的文本框中显示所选id的示例:
http://jsfiddle.net/RoystonS/cH6hf/
如果不指定要监视的值,回调将显示所有更改,这非常有用。

相关问题