0

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

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

现在,我想在这个 Dojo Form Select 中以编程方式选择一个特定的状态。我尝试了以下方法:

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。

4

1 回答 1

2

使用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");
    });
});
于 2013-04-25T06:52:03.217 回答