我有一个使用以下参数激活的多重选择:
$(".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();
显示选定的值,但所选值的“已检查”图标仍然不显示。如果有人知道我该如何解决这个问题..
最佳答案
所以我最初的猜测是您需要调用 .selectpicker('refresh')。
我设法复制了您所看到的行为,而我的解决方案确实是在 for 循环后刷新选择器。
for (j = 0; j < inputArray.length; j++) {
$("#user-input")
.children()
.filter("[value = '" + inputArray[j] + "']")
.prop('selected', true);
}
$('.selectpicker').selectpicker('refresh');
请注意,您不需要调用 .change(),因为您正在刷新选择器。
关于javascript - Bootstrap-选择多显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48441860/