bootstrap multiselect(刷新)无法正常工作
我正在使用bootstrap multiselect列表框。 当用户在多选时选择选项时,它会正确显示。 但是可以选择重置以前选择的选项。 当用户单击重置按钮时,自动style=display:none
将添加到下拉按钮,下拉列表将变为不可见。
这是我的代码
$("#button").click(function () { $('option', $('.multiselect')).each(function (element) { $(this).removeAttr('selected').prop('selected', false); }); $('.multiselect').multiselect('refresh'); });
其他有用的选项是:
-
$('Id').multiselect('refresh');
– 根据所选的选项刷新多选。 -
$('Id').multiselect('destroy');
– 解除整个插件的绑定。 -
buildFilter
:构建filter。 -
buildSelectAll
:构建selct all.Checks如果已经创建了select all。 -
$('Id').multiselect('select', ['1', '2', '4']);
– 选择给定值的所有选项。 -
clearSelection
:清除所有选定的项目。 -
$('Id').multiselect('deselect', ['1', '2', '4']);
– 取消选择给定值的所有选项。 -
$('Id').multiselect('selectAll', true);
– 选择所有已启用和可见的选项。 -
$('Id').multiselect('deselectAll', true);
– 取消选择所有选项。 -
$('Id').multiselect('rebuild');
– 重建插件。 -
$('Id').multiselect('enable');
– 启用多选。 -
$('Id').multiselect('disable');
– 禁用多选。 -
hasSelectAll
:检查是否存在全选复选框。 -
updateSelectAll
:根据当前显示和选中的复选框更新全选复选框。 -
$('Id').multiselect('updateButtonText');
– 根据当前选择的选项更新按钮文本及其标题。 -
getSelected()
:获取所有选定的选项。 -
getOptionByValue()
:通过其值获取select选项。 -
$('Id').multiselect('dataprovider', options);
– 提供的数据将用于构建下拉列表。
有关更多详细信息,请访问bootstrap-multiselect
如果您只是像这样定位类,则Bootstrap Multiselect会失败。
$(".multiselect").multiselect("refresh");
发生这种情况是因为插件中还有其他内容具有“multiselect”类。 你必须让它知道,它只是你想要的目标选择。
以下对我有用。
$("select.multiselect").multiselect("refresh");
“取消选择”方法的计数相同。
$("select.multiselect").multiselect("deselectAll", false);
请查看此文档: http : //davidstutz.github.io/bootstrap-multiselect/
要取消选择选项,请使用此选项
$('.multiselect').multiselect('deselect', value)
然后调用refresh方法
$('.multiselect').multiselect('refresh');
我的方法是销毁多选,然后重新初始化它。 这对我有用。 试试看:
function initMultiSelect(){ $('#yourMultiselectId').multiselect({ includeSelectAllOption: true, selectAllValue: 'select-all-value' }); } $('#button').click(function(e){ e.preventDefault(); $('#yourMultiselectId').multiselect('destroy'); initMultiSelect(); });