Dojo表单。选择不正确设置值

时间:2013-12-16 16:17:50

标签: javascript dojo

我的dijit.formSelect有问题,我无法设置所选的选项。我正在动态创建包含所有选项的数组,并在满足条件时将“selected”字段设置为true。这部分很好,在检查创建的数组时,它是预期的。当我执行select.addOption时出现问题。在这种情况下,它从原始元素中删除selected = true并设置数组的第一个元素,这是错误的。

这是我的代码:

var select = dijit.byId("nameOfThe form.Select");
var arrayOptions = [];

//Data is another array with more information
for(var i = 0; i < data.length; i++) {
newOption = {
    value: data[i][ident],
    label: data[i][label]
};

if(exist(currentValue[0]) && currentValue[0] == data[i][ident]) {
    newOption.selected = true;
}

arrayOptions.push(newOption);
}

select.addOption(arrayOptions);

我正在关注教程和几个论坛,我尝试了他们所说的内容,例如:

  • select.set(“value”,“value wanted”); //作为字符串
  • select.set(“value”,value wanted); //作为数字
  • select.value =“value wanted”;
  • select.setDisplayedValue(想要的值)

没有任何作用,它让我发疯。我究竟做错了什么?感谢

1 个答案:

答案 0 :(得分:0)

将OPTION添加到SELECT后,您可能必须设置selectedIndex属性:

var select = dijit.byId("nameOfThe form.Select");
var arrayOptions = [];
var selectedIndex = 0;

//Data is another array with more information
for(var i = 0; i < data.length; i++) {
    newOption = {
        value: data[i][ident],
        label: data[i][label]
    };

    if(exist(currentValue[0]) && currentValue[0] == data[i][ident]) {
        selectedIndex = i;
    }

    arrayOptions.push(newOption);
}

select.addOption(arrayOptions);
select.selectedIndex = selectedIndex;