将选项附加到 select 框后,selected 不被接受

after appending options to select box, selected is not honored

我已经看到很多关于使用 jQuery 将选项动态附加到 select 框的其他问题,我按照他们的说明进行操作,但仍然不是 select荷兰国际集团的选项。这是 HTML:

<select id="updated-value-dropdown" class="form-control" style="min-width: 10em;">
</select>

这里是 Javascript:

$('#edit-modal').on('show.bs.modal', function (e) {
  target_element = $(this).find('#updated-value-dropdown');
  target_element.html(''); // clear options
  var add_options = getOptionsToAdd();
  for (var i = 0; i < add_options.length; i++) {
    target_element.append(new Option(add_options[i], add_options[i], i === 0, i === 0));
  }
}

结果是一个带有正确选项的下拉框,当我检查页面时,我可以看到第一个选项在 HTML 中标记为 "selected",这是应该的,但在显示模式时它仍然没有显示为实际 selected...为什么这不起作用?

下拉菜单在页面上的样子(没有点击它):

这是我点击下拉菜单时的样子 -- 如您所见,第一个选项是 "selected",旁边有一个复选标记,但正如您在上图中所见,它实际上并未显示为实际框中的值(除非我手动单击该值):

还有,我用的是bootstrap,不知道跟这个有没有关系...

你可以这样做(在你的最后一行):

target_element
.append(new Option(add_options[i], add_options[i], i === 0, i === 0))
.promise()
.done(function() {
    target_element.find('option:first').prop('selected',true);
    //if you want to select first option after append really done
});

抱歉,如果我误解了您的需求,但我会告诉您方法。

哦,天哪,我是个白痴——代码中还有另一个地方正在调用 target_element.val(...) 并将其设置为一个值,该值不是选项列表中的选项之一,因此正在清除我尝试 select.

的值