Bootstrap-选择多个显示问题

时间:2018-01-25 11:32:06

标签: javascript bootstrap-select

我有一个用以下参数激活的多项选择:

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

我从数据库中获取了一些值,并尝试相应地调整多项选择的选定值,如javascript:

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

它有效。这些值是100%选择的,因为我测试了它,但我得到的文本仍然是我设置的noneSelectedText。并且bootstrap-select有一个'CHECKED'符号附加到所有选定的值,并且也缺少。单击选定的值按预期工作并取消选择它,然后从那里渲染就可以了。但是我怎样才能让它从一开始就显示出来呢?

编辑:这样做

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

显示所选值,但“CHECKED”图标仍未显示所选值。如果有人知道如何解决这个问题..

1 个答案:

答案 0 :(得分:1)

所以我最初的猜测是你需要调用.selectpicker(&#39; refresh&#39;)。

我设法复制了你所看到的行为,而我最终的解决方案确实是在for循环之后刷新了selectpicker。

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

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