我有一个用以下参数激活的多项选择:
$(".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”图标仍未显示所选值。如果有人知道如何解决这个问题..
答案 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。