Bootstrap Select bootstrap-select 1.14.0-beta3

bootstrap-select 把原生下拉框重绘为功能完整的选择器:支持搜索、多选、选项分组与按钮样式定制。本页基于 Bootstrap 5.3.8 演示。

官方对照

Bootstrap 官方的 Form Select 只统一了原生 <select> 的外观,不提供搜索与多选增强;bootstrap-select 在此之上补齐了这些能力。

官方已有 官方已有基础下拉样式,本库是其增强版

对比维度Bootstrap 官方bootstrap-select
能力定位仅对原生 <select> 做表单控件外观统一把 select 重绘为带搜索、多选、分组的高级下拉组件
核心特性尺寸、禁用、校验态等基础表单样式data-live-search 搜索、multiple 多选、optgroup 分组、自定义标题与勾选标记
依赖与体积无额外依赖(Bootstrap bundle 已含)需 jQuery ≥ 1.9.1 + 本库 CSS/JS(约 40KB 未压缩)
样式定制表单类与 Sass 变量定制data-size、data-width、data-style 等属性 + CSS 主题覆盖
适用场景常规后台表单、选项较少的下拉选项数量多、需要搜索或多选的复杂表单

引入方式

通过 jsDelivr 固定版本引入。注意版本兼容:bootstrap-select 最新稳定版 1.13.18 仅适配 Bootstrap 3/4;Bootstrap 5 需使用官方 1.14.0-beta(已加入 BS5 支持,尚未发布正式版)。本页固定 1.14.0-beta3,并依赖 jQuery 3.7.1(要求 ≥ 1.9.1)。

引入代码
<!-- 1. Bootstrap 5.3 CSS(页面已引入,此处示意) -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet">

<!-- 2. jQuery(bootstrap-select 依赖,要求 >= 1.9.1) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>

<!-- 3. bootstrap-select 样式与脚本(Bootstrap 5 请用 1.14.0-beta) -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.14.0-beta3/dist/css/bootstrap-select.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.14.0-beta3/dist/js/bootstrap-select.min.js"></script>

基础示例

给原生 <select> 加上 selectpicker 类,再调用 $(...).selectpicker() 即可完成重绘;title 作为占位提示。

HTML 示例
<select class="selectpicker" title="请选择城市">
  <option>北京</option>
  <option>上海</option>
  <option>广州</option>
  <option>深圳</option>
  <option>杭州</option>
</select>

<script>
$(function () {
  // 初始化:把所有 .selectpicker 重绘为增强下拉
  $('.selectpicker').selectpicker();
});
</script>

搜索与多选

加 data-live-search="true" 开启选项搜索,加 multiple 允许多选;optgroup 分组在下拉中自动保留。

HTML 示例
<select class="selectpicker" multiple data-live-search="true"
        title="可搜索、可多选的技术栈">
  <optgroup label="前端">
    <option>HTML / CSS</option>
    <option>JavaScript</option>
    <option>TypeScript</option>
    <option>Vue</option>
    <option>React</option>
  </optgroup>
  <optgroup label="后端">
    <option>Node.js</option>
    <option>Python</option>
    <option>Java</option>
    <option>Go</option>
  </optgroup>
</select>

<script>
// data-live-search / multiple 均由属性驱动,初始化调用同基础示例
$(function () {
  $('.selectpicker').selectpicker();
});
</script>