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

时间:2014-09-09 17:04:26

标签: jquery twitter-bootstrap bootstrap-multiselect

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

这是我的代码

$("#button").click(function () {

    $('option', $('.multiselect')).each(function (element) {
        $(this).removeAttr('selected').prop('selected', false);

    });
    $('.multiselect').multiselect('refresh');
});

5 个答案:

答案 0 :(得分:42)

其他有用的选项包括:

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

  2. $('Id').multiselect('destroy'); - 取消绑定整个插件。

  3. buildFilter:构建过滤器。

  4. buildSelectAll:如果已经创建了全部选择,则构建selct all.Checks。

  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():按值获取选择选项。

  18. $('Id').multiselect('dataprovider', options); - 提供的数据将用于构建下拉列表。

  19. 有关详细信息,请访问bootstrap-multiselect

答案 1 :(得分:6)

如果您只是像这样定位类,则Bootstrap Multiselect会失败。

$(".multiselect").multiselect("refresh");

这是因为插件中还有其他类似于" multiselect"。 你必须告诉它,它只是你要定位的选择。

以下对我有用。

$("select.multiselect").multiselect("refresh");

"取消选择"同样重要。方法

$("select.multiselect").multiselect("deselectAll", false);

答案 2 :(得分:2)

请查看此文档:http://davidstutz.github.io/bootstrap-multiselect/

要取消选择选项,请使用此

$('.multiselect').multiselect('deselect', value)

然后调用refresh方法

$('.multiselect').multiselect('refresh');

答案 3 :(得分:1)

我的方法是销毁多选,然后重新初始化它。这对我有用。试一试:

    function initMultiSelect(){

      $('#yourMultiselectId').multiselect({
        includeSelectAllOption: true,
        selectAllValue: 'select-all-value'
      });
    }


    $('#button').click(function(e){
        e.preventDefault();
        $('#yourMultiselectId').multiselect('destroy');
        initMultiSelect();
    });

答案 4 :(得分:0)

$('option', "#id").each(function(element) {
  jQuery("#id").multiselect('deselect', $(this).val());
});

我已成功取消选择先前选择的选项。