Bootstrap-select 多重显示问题

Bootstrap-select multiple display issue

我有多个 select,我使用以下参数激活了它:

$(".selectpicker").selectpicker({
        width: '100%',
        noneSelectedText: messages['nothingSelected']
});

我正在从数据库中获取一些值,并尝试相应地调整多个 select 的 selected 值,例如 javascript:

for (j = 0; j < inputArray.length; j++) {
            $("#user-input") 
                    .children()
                    .filter("[value = '" + inputArray[j] + "']")
                    .prop('selected', true);
}

并且有效。这些值是 100% selected 因为我测试了它,但我得到的文本仍然是我设置的 noneSelectedText。 bootstrap-select 有一个 'CHECKED' 符号附加到所有 selected 值,而且也没有。单击 selected 值按预期工作,然后 deselects 它,从那里渲染工作正常。但是我怎样才能让它从一开始就显示所有内容呢?

编辑:这样做

$("#user-input") 
                .children()
                .filter("[value = '" + inputArray[j] + "']")
                .prop('selected', true)
                .change();

显示 selected 值,但 'CHECKED' 图标仍未显示 selected 值。如果有人知道我该如何解决这个问题..

所以我最初的猜测是您需要调用 .selectpicker('refresh')。

我设法复制了您所看到的行为,而我的解决方案确实是在 for 循环之后刷新选择器。

for (j = 0; j < inputArray.length; j++) {
           $("#user-input") 
                .children()
                .filter("[value = '" + inputArray[j] + "']")
                .prop('selected', true);
}
$('.selectpicker').selectpicker('refresh');

请注意,您不需要调用 .change(),因为您正在刷新选择器。