bootstrap multiselect(刷新)无法正常工作

我正在使用bootstrap multiselect列表框。 当用户在多选时选择选项时,它会正确显示。 但是可以选择重置以前选择的选项。 当用户单击重置按钮时,自动style=display:none将添加到下拉按钮,下拉列表将变为不可见。

这是我的代码

 $("#button").click(function () { $('option', $('.multiselect')).each(function (element) { $(this).removeAttr('selected').prop('selected', false); }); $('.multiselect').multiselect('refresh'); }); 

其他有用的选项是:

  1. $('Id').multiselect('refresh'); – 根据所选的选项刷新多选。

  2. $('Id').multiselect('destroy'); – 解除整个插件的绑定。

  3. buildFilter :构建filter。

  4. buildSelectAll :构建selct all.Checks如果已经创建了select all。

  5. $('Id').multiselect('select', ['1', '2', '4']); – 选择给定值的所有选项。

  6. clearSelection :清除所有选定的项目。

  7. $('Id').multiselect('deselect', ['1', '2', '4']); – 取消选择给定值的所有选项。

  8. $('Id').multiselect('selectAll', true); – 选择所有已启用和可见的选项。

  9. $('Id').multiselect('deselectAll', true); – 取消选择所有选项。

  10. $('Id').multiselect('rebuild'); – 重建插件。

  11. $('Id').multiselect('enable'); – 启用多选。

  12. $('Id').multiselect('disable'); – 禁用多选。

  13. hasSelectAll :检查是否存在全选复选框。

  14. updateSelectAll :根据当前显示和选中的复选框更新全选复选框。

  15. $('Id').multiselect('updateButtonText'); – 根据当前选择的选项更新按钮文本及其标题。

  16. getSelected() :获取所有选定的选项。

  17. getOptionByValue() :通过其值获取select选项。

  18. $('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(); });