以编程方式更改由标签值对对象填充的Dojo Form Select的选定选项

Programatically change selected option of a Dojo Form Select that is populated by label value pair object

本文关键字:Form Dojo Select 选项 填充 对象 方式更 编程 标签      更新时间:2023-09-26

我有一个Dojo表单选择输入框,其中我使用具有标签值对的javascript数据对象填充选项(下面构建此类对象的示例代码):

for loop {
  varStateValuePairs.push({
    label: <State ID>, 
    value: <State Name>
  });
}
dijit.byId("StateDDL").addOption(varStateValuePairs);

现在,我想在这个Dojo Form select中以编程方式选择一个特定的State。我尝试了以下操作:

dijit.byId("StateDDL").attr("value", String(5)); // 5 is the example value corresponding to the label-value pair I want to select
dijit.byId("StateDDL").attr("value", 5);
dojo.byId("StateDDL").value = 5;
dijit.byId("StateDDL").set("displayedValue", "Texas");

以上都不起作用。我哪里错了?我搜索了很多,在其他帖子中列出的解决方案都不适合我。我正在运行Dojo 1.8.

使用Select.setValue()

http://jsfiddle.net/fiddlegrimbo/qauHX/2/

默认选择value0,我们手动选择value2

var varStateValuePairs = [];
for (var i = 0; i < 10; i++) {
  varStateValuePairs.push({
    label: "state"+i, 
    value: "value"+i
  });
}
require(["dojo/parser", "dijit/registry", "dijit/form/Select", "dojo/domReady!"], function (parser, registry) {
    parser.parse().then(function () {
        var widget = registry.byId("StateDDL");
        widget.addOption(varStateValuePairs);
        widget.setValue("value2");
    });
});