深入解析bootstrap-select中的多選和模糊查詢下拉框
本篇文章帶大家詳細了解bootstrap-select中的多選和模糊查詢下拉框。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
引入問題
之前部落客在實際開發中遇到了一個問題,就是需要既支援多重選擇又同時支持模糊查詢的下拉控件,大家所熟知的比較強大的下拉框插件bootstrap-select2,博主當時也參考過,但是發現它的多選效果做的比較差,類似這種,

這樣的多選控制必須要控制夠長,如果選擇超過一定限制就會出現樣式崩潰,你懂的~後面我無意中發現了bootstrap-select插件,瞬間發現它很高大上呀!它即可以支援單選,又支援多選,最厲害的是竟然還自備模糊查詢功能!先給大家展示下酷炫的效果吧:
#這樣的控制項不用真是可惜了,後面部落客找了很多文件和部落格參考,但是發現很多都沒有寫清楚具體的用法,只是簡單的擺一個例子,並沒有太大的參考價值,博主通過研究官網的相關文檔以及結合自身開發經驗,把bootstrap-select的用法做一個清晰的梳理,供大家參考。 【相關推薦:《bootstrap教學》】
官方外掛程式位址: http://silviomoreto.github.io/bootstrap-select
Github位址: https://github.com/silviomoreto/bootstrap-select
應用範例(參考官方文件Basic examples)
#1.單選
- 簡單單選 選取預設是沒有「√」的。
<select class="selectpicker"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果顯示

- #分組單選 注意加入optgroup標籤
<select class="selectpicker"> <optgroup label="Picnic"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </optgroup> <optgroup label="Camping"> <option>Tent</option> <option>Flashlight</option> <option>Toilet Paper</option> </optgroup> </select>
效果展示

#2.多選框
相比於單選框加入了一個multiple
標籤
<select class="selectpicker" multiple> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

3.模糊查詢
新增一個data-live-search="true"
的屬性
<select class="selectpicker" data-live-search="true"> <option>Hot Dog</option> <option>Fries</option> <option>Soda</option> <option>Burger</option> <option>Shake</option> <option>Smile</option> </select>
效果展示

4.多選限制
新增屬性data-max-options="2"
或在初始化時用maxOptionsText
做限制
<select class="selectpicker" multiple data-max-options="2"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
或在初始化selectpicker時設定maxOptionsText
$('.selectpicker').selectpicker({ 'selectedText':'cat', 'maxOptionsText':2; })
效果展示

#5.自訂按鈕的文字


##透過屬性
title來控制。
選擇框文本################選擇顯示單一文本 意思是選取對應的option,就展示option的title,例如選取"Burger, Shake and a Smile",文字方塊內顯示Combo 2。 ######
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><select class="selectpicker" multiple title="请选择一个"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select></pre><div class="contentsignin">登入後複製</div></div>
效果展示###效果展示###################6.多選框格式化選擇文字##########透過屬性###data-selected-text-format### 來控制選取的值的顯示 可選的值有以下4個:#########1.###values###: 逗號分隔的選定值清單(系統預設);###<select class="selectpicker"> <option title="Combo 1">Hot Dog, Fries and a Soda</option> <option title="Combo 2">Burger, Shake and a Smile</option> <option title="Combo 3">Sugar, Spice and all things nice</option> </select>登入後複製
2.
count
: 如果选择了一个项,则显示选项值。如果选择多于一个,则显示所选项的数量,如选择2个,则下拉框显示2个已被选中;
3.
count > x
: 当count的值小于x时,展示逗号分隔的选定值列表;当count>x时,显示x个被选中;
4.
static
:无论选中什么,都只展示默认的选中文本。 下面给几个简单示例
<select class="selectpicker" multiple data-selected-text-format="count"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> <option>Onions</option> </select>
效果展示

<select class="selectpicker" multiple data-selected-text-format="count>3"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> <option>Onions</option> </select>
效果展示

7.样式选择
- 按钮样式
通过
data-style
来设置按钮的样式
<select class="selectpicker" data-style="btn-primary"> ... </select> <select class="selectpicker" data-style="btn-info"> ... </select> <select class="selectpicker" data-style="btn-success"> ... </select> <select class="selectpicker" data-style="btn-warning"> ... </select> <select class="selectpicker" data-style="btn-danger"> ... </select>
效果展示

- 单选框样式
这里要注意一下,单选框默认是没有多选框的选中之后的"√"图标的,如果想要加上这个图标的话,需要在样式中加入
show-tick
即可。
<select class="selectpicker show-tick"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

- 菜单的箭头
Bootstrap的菜单箭头也可以被添加进来,需要加入样式
show-menu-arrow
,个人感觉差别不大
<select class="selectpicker show-menu-arrow"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

- style样式自定义 bootstrap-select的样式不是死的,可以自定义style样式,类似最基本的css样式添加。
.special { font-weight: bold !important; color: #fff !important; background: #bc0000 !important; text-transform: uppercase; } <select class="selectpicker"> <option>Mustard</option> <option class="special">Ketchup</option> <option style="background: #5cb85c; color: #fff;">Relish</option> </select>
效果展示

- 宽度(Width)
1.引用bootstrap的样式
<div class="row"> <div class="col-xs-3"> <div class="form-group"> <select class="selectpicker form-control"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select> </div> </div> </div>
2.使用data-width
属性,来定义宽度,可选的值有以下4个auto
:select的宽度由option中内容宽度最宽的哪个决定;fit
:select的宽度由实际选中的option的宽度决定;100px
:select的宽度定义为100px;50%
:select的宽度设置为父容器宽度的50%。
<select class="selectpicker" data-width="auto"> <option>cow</option> <option>bullaaaaaaaaaaaa</option> <option>ASD</option> <option>Bla</option> <option>Ble</option> </select> <select class="selectpicker" data-width="fit"> <option>cow</option> <option>bullaaaaaaaaaaaa</option> <option>ASD</option> <option>Bla</option> <option>Ble</option> </select> <select class="selectpicker" data-width="100px"> <option>cow</option> <option>bull</option> <option>ASD</option> <option selected>Bla</option> <option>Ble</option> </select> <select class="selectpicker" data-width="50%"> <option>cow</option> <option>bull</option> <option>ASD</option> <option selected>Bla</option> <option>Ble</option> </select>
效果展示:从左至右依次为“auto”,“fit","100px","50%"。

8.自定义option
1.添加图标
用data-icon
给option添加小图标,实现比较炫酷的效果
<select class="selectpicker"> <option data-icon="glyphicon-heart">Ketchup</option> <option data-icon="glyphicon glyphicon-th-large">Mustard</option> <option data-icon="glyphicon glyphicon-home">Relish</option> </select>
效果展示

如果想要获取更多样式可参考bootstrap官网的图标库,给个网址www.runoob.com/bootstrap/b…
2.插入HTML
用data-content
可以在option中插入html元素,实现想要的效果。
<select class="selectpicker"> <option data-content="<span class='label label-success'>Relish</span>">Relish</option> </select>
效果展示

3.插入二级标题
用data-subtext
实现二级标题,实现提示或者其他效果,如果要在select中也展示二级标题,要在初始化selectpicker时要设置showSubtext
为true。
<select class="selectpicker" data-size="5"> <option data-subtext="Heinz">Ketchup</option> <option data-subtext="ble">Mustard</option> <option data-subtext="com">Relish</option> </select>
效果展示

$('.selectpicker').selectpicker({ 'selectedText':'cat', 'showSubtext':true }) <select class="selectpicker" data-size="5"> <option data-subtext="Heinz">Ketchup</option> <option data-subtext="ble">Mustard</option> <option data-subtext="com">Relish</option> </select>
效果展示

9.自定义下拉菜单
1.菜单显示项大小
通过data-size
属性来限制菜单显示的条数,比如说option有8条,我们只展示5条,其余的通过滚动条显示。
<select class="selectpicker" data-size="5"> <option>apple</option> <option>banana</option> <option>group</option> <option>orange</option> <option>cherry</option> <option>mango</option> <option>pineapple</option> <option>lychee</option> </select>
效果展示(只展示前5个,后面的可以拖动滚动条查看)

2.全选和全不选
通过设置data-actions-box="true"
来添加全选和全不选的按钮
<select class="selectpicker" multiple data-actions-box="true"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

当然这个按钮的文本也是可以自定制的 只需要在初始化时设置即可
$('.selectpicker').selectpicker({ 'selectedText':'cat', 'noneSelectedText':'请选择', 'deselectAllText':'全不选', 'selectAllText': '全选', })
效果展示

3.添加数据分割线
设置data-divider="true"
添加数据分割线。
<select class="selectpicker" data-size="5"> <option>Mustrad</option> <option >Ketchup</option> <option >Relish</option> <option data-divider="true"></option> <option>Mustrad</option> <option >Ketchup</option> <option >Relish</option> </select>
效果展示

4.添加菜单头
用data-header
为下拉菜单设置菜单头
<select class="selectpicker" data-header="Select a condiment"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

5.设置菜单的上浮或者下浮
通过设置dropupAuto
来设置菜单的上下浮动,dropupAuto
默认为true,自动确定是否应显示的菜单上面或下面的选择框,如果设置为false,系统会加入一个dropup
样式的上拉框。
$('.selectpicker').selectpicker({ 'selectedText':'cat', 'dropupAuto':false }) <select class="selectpicker dropup"> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

10.不可用
在对应的控件上加入disabled
即可实现
1.设置select不可用
这里select按钮失效,不能点击
<select class="selectpicker" disabled> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </select>
效果展示

2.设置option不可用
这里option设置属性为disabled
的将无法选中
<select class="selectpicker"> <option>Mustard</option> <option disabled>Ketchup</option> <option>Relish</option> </select>
效果展示

3.设置optiongroup不可用 这里是一个optiongroup将无法选中
<select class="selectpicker test"> <optgroup label="Picnic" disabled> <option>Mustard</option> <option>Ketchup</option> <option>Relish</option> </optgroup> <optgroup label="Camping"> <option>Tent</option> <option>Flashlight</option> <option>Toilet Paper</option> </optgroup> </select>
效果展示

总结
好的,这里我们基本上把官方的应用示例解读完毕,当然如果有疑问可以自己亲自去验证或者咨询博主,想实现自己想要的效果就要多加摸索和实践,只要明白其中的规则就能触类旁通了。第一篇关于bootstrap-select的官方示例文档的解读,如果想了解更多bootstrap-select的用法,可以关注我后面的博客哦。
更多编程相关知识,请访问:编程入门!!
以上是深入解析bootstrap-select中的多選和模糊查詢下拉框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

如何使用 Bootstrap 獲取搜索欄的值:確定搜索欄的 ID 或名稱。使用 JavaScript 獲取 DOM 元素。獲取元素的值。執行所需的操作。

使用 Bootstrap 實現垂直居中:flexbox 法:使用 d-flex、justify-content-center 和 align-items-center 類,將元素置於 flexbox 容器內。 align-items-center 類法:對於不支持 flexbox 的瀏覽器,使用 align-items-center 類,前提是父元素具有已定義的高度。

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-
