我有许多组合框,我希望在选择其他值时更改值。我是JavaScript的新手,这是我从其他同事那里收集到的。理想的工作流程是,如果在cbRequestType中选择电子废弃物,那么填充的唯一物品是下面的那些,例如复印机,打印机等。这不起作用,我可能缺少什么?
此外,我的应用程序已经维护了一个从数据库填充cbEWASTE下拉列表的函数。我希望通过该函数并在更改时填充组合框。
dijit.byId("cbRequestType").on('change', function(MFValue) {
if (MFValue == 'E-WASTE') {
dijit.byID("cbEWASTE").set('value', 'Copy Machine');
}
else if (MFValue == '...') {
dijit.by.ID('cbEWASTE').set('value', 'Printer');
}
});
答案 0 :(得分:2)
您正在调用不正确的方法。没有像你在更改事件中使用的byID()
或by.ID()
这样的函数。正确的用法是:
dijit.byId("cbRequestType").on('change', function(MFValue) {
if (MFValue == 'E-WASTE') {
dijit.byId("cbEWASTE").set('value', 'Copy Machine');
}
else if (MFValue == '...') {
dijit.byId('cbEWASTE').set('value', 'Printer');
}
});
请记住,函数名称区分大小写,因此请务必调用某些函数。 接下来,当您设置值时,您没有设置下拉列表,您只需在组合框的文本框中设置当前值。
如果要填充下拉列表,则应更改组合框的存储,例如(Dojo 1.8及更高版本):
registry.byId("cbEWASTE").set("store", new Memory({
data: [{
id: "Printer",
name: "Printer"
}]
}));
可以在JSFiddle上找到一个示例。