Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Dojo窗体。选择未正确设置值_Javascript_Dojo - Fatal编程技术网

Javascript Dojo窗体。选择未正确设置值

Javascript Dojo窗体。选择未正确设置值,javascript,dojo,Javascript,Dojo,我的dijit.formSelect有问题,无法设置所选选项。我正在动态创建包含所有选项的数组,如果满足条件,则将“selected”字段设置为true。这部分很好,当检查创建的阵列时,它与预期的一样。当我执行select.addOption时,问题出现了。在这种情况下,它从原始元素中删除selected=true并设置数组的第一个元素,这是错误的 这是我的密码: var select = dijit.byId("nameOfThe form.Select"); var arrayOptions

我的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);
var select=dijit.byId(“form.select的名称”);
var arrayOptions=[];
//数据是另一个包含更多信息的数组
对于(变量i=0;i
我正在关注教程和几个论坛,并尝试了他们所说的内容,如:

  • select.set(“值”、“所需值”);//一串
  • 选择。设置(“值”,需要的值);//作为一个数字
  • select.value=“所需价值”
  • select.setDisplayedValue(需要的值)

什么都不管用,我快疯了。我做错了什么?谢谢

在将选项添加到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;
var select=dijit.byId(“form.select的名称”);
var arrayOptions=[];
var selectedIndex=0;
//数据是另一个包含更多信息的数组
对于(变量i=0;i
Hm。唯一的其他选择是在for循环中添加每个选项,并在最后设置selectedIndex。如果这不起作用,页面上是否有其他代码在修改选择框后更改它?这也不起作用,在我的代码中,没有这种意义上的干扰。实际上,在调试代码时,它会在执行select.addOption时将selected=true添加到第一个元素,而不管我在循环的末尾或内部使用它一次。我将尝试自行调试组件。您可能需要深入研究好的DOM方法:document.createElement(“选项”)和select.appendChild(…)。