我正在尝试动态更改select2下拉列表的选项。
我已经搜索了论坛并设法更改了所选选项,但是只有在单击下拉列表并查看整个列表时,该选项才可见。预先道歉,因为它不是最好的编码器。
function changeSelectOption(designSelVal) //designSelVal = 9
{
var opts = document.getElementById("design").options;
for (var opt, i = 0; opt = opts[i]; i++)
{
if (opt.value == design)
{
document.getElementById("design").selectedIndex = i;
break;
}
}
}
/ *这表明已正确地从值2更改为9 * /
<option value="2" >Text Only</option>
<option value="4" >Heart Arrow</option>
<option value="9" selected>Heart</option>
可见选项仍然是“纯文本”而不是“心脏”,就好像选择框需要刷新一样。
答案 0 :(得分:1)
您缺少if条件:
应该是
if (opt.value == designSelVal)
function changeSelectOption(designSelVal) //designSelVal = 9
{
var opts = document.getElementById("design").options;
for (var opt, i = 0; opt = opts[i]; i++) {
if (opt.value == designSelVal) {
document.getElementById("design").selectedIndex = i;
break;
}
}
}
changeSelectOption(9);
<select id="design">
<option value="2" selected>Text Only</option>
<option value="4">Heart Arrow</option>
<option value="9" >Heart</option>
</select>