You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

禁用Bootstrap Multiselect取消全选按钮,保留全选按钮

解决Bootstrap Select(Multiselect)隐藏取消全选按钮的问题

嘿,我来帮你搞定这个需求!要保留Select All按钮同时禁用Deselect All按钮,有几种靠谱的方法,推荐优先用官方配置的方式,最稳定:

方法一:初始化时通过配置隐藏(推荐)

Bootstrap Select插件本身提供了控制取消全选按钮显示的参数showDeselectAll,把它设为false就可以直接隐藏取消全选按钮,同时保留全选功能。

把你的初始化代码改成这样:

$(document).ready(function() {
  $('#typeCheckboxSelect').selectpicker({
    showDeselectAll: false, // 隐藏取消全选按钮
    selectAllText: 'Select All' // 可选:自定义全选按钮的文本
  });
});

结合你的HTML代码,完整示例如下:

<select id="typeCheckboxSelect" class="selectpicker" name="typeSelector[]" multiple="multiple">
  <option class='typeCheckbox' value='test1'>Test One</option>
  <option class='typeCheckbox' value='test2'>Test Two</option>
  <option class='typeCheckbox' value='test3'>Test Three</option>
</select>

<script>
$(document).ready(function() {
  $('#typeCheckboxSelect').selectpicker({
    showDeselectAll: false
  });
});
</script>

方法二:用CSS强制隐藏

如果不想修改JS初始化代码,也可以通过CSS直接把取消全选按钮隐藏掉:

/* 隐藏取消全选按钮 */
.bootstrap-select .dropdown-menu .deselect-all {
  display: none !important;
}

这种方法简单直接,但要注意如果插件更新后DOM类名变化,可能会失效,所以还是优先方法一。

方法三:初始化后动态移除元素

如果是已经初始化好的组件,或者需要动态控制显示/隐藏,可以在初始化完成后移除取消全选的DOM元素:

$(document).ready(function() {
  // 先初始化组件
  $('#typeCheckboxSelect').selectpicker();
  // 刷新确保DOM生成,然后移除取消全选按钮
  $('#typeCheckboxSelect').selectpicker('refresh');
  $('.bootstrap-select .dropdown-menu .deselect-all').remove();
});

这样就能完美实现你要的效果啦!

内容的提问来源于stack exchange,提问作者CrimzonWeb

火山引擎 最新活动