multiple-select 下拉控件的使用


最開始我是使用 select2,但是select2有個比較煩人的缺陷,多選不支持搜索,這樣如果下拉菜單選項多了,那豈不是要一直划拉,這時候有人會問了,你是不是沒看官方文檔,額 ,官方文檔我還真看了,訥訥,官方原話

image-20200930150318156

所有我開始找另外的插件,找啊找,找到了multiple-select,先看了官方的例子

image-20200930150635262

看到這里沒有,多選搜索是支持的,我決定試試

官方資源

//官網
http://multiple-select.wenzhixin.net.cn/

//github
https://github.com/wenzhixin/multiple-select

//官方CDN
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://unpkg.com/multiple-select@1.5.2/dist/multiple-select.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://unpkg.com/multiple-select@1.5.2/dist/multiple-select.min.js"></script>

//下載地址
https://github.com/wenzhixin/multiple-select/releases

//所有Demo地址
http://multiple-select-live.wenzhixin.net.cn/

目錄結構

multiple-select/
├── site/
├── src
|   ├── constants
|   ├── locale
|   ├── utils
|   ├── vue
│   ├── MultipleSelect.js
│   ├── multiple-select.css
│   ├── multiple-select.js
├── dist
│   ├── multiple-select-es.js
│   ├── multiple-select-es.min.js
│   ├── multiple-select.css
│   ├── multiple-select.js
│   ├── multiple-select.min.css
│   ├── multiple-select.min.js
└── README.md

src/,是我們的CSS,JS的源代碼。該dist/文件夾包含使用編譯和縮小的所有內容src/。該docs/文件夾包含我們文檔的源代碼。除此之外,任何其他包含的文件都提供對軟件包,許可證信息和開發的支持。

快速預覽Demo

<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Hello, Multiple Select!</title>

    <link rel="stylesheet" href="https://unpkg.com/multiple-select@1.5.2/dist/multiple-select.min.css">
</head>
<body>
<!-- Single Select -->
<select>
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>

<!-- Multiple Select -->
<select multiple="multiple">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://unpkg.com/multiple-select@1.5.2/dist/multiple-select.min.js"></script>
<script>
    $(function () {
        $('select').multipleSelect()
    })
</script>
</body>
</html>

效果

image-20200930152932332

image-20200930152947459

可以看到基礎單選多選已經實現

初始化選項設置

所有選項

{
	#向后台提交的name
    "name": "",
    #下拉框的提示
    "placeholder": "請選擇",
    #是否打開選擇全部的選擇按鈕
    "selectAll": true,
    #是否是單選
    "singleRadio": false,
    #是否是多選
    "multiple": false,
    #是否隱藏組的選擇
    "hideOptgroupCheckboxes": false,
    #顯示多選的寬度
    "multipleWidth": 80,
    #最大高度
    "maxHeight": 250,
    #最大高度單位
    "maxHeightUnit": "px",
    #定義選擇下拉菜單的位置,只能是“bottom”或“top”。
    "position": "bottom",
    #顯示選定的值而不是文本。
    "displayValues": false,
    #顯示所選文本的標題。
    "displayTitle": false,
    #自定義顯示分隔符。
    "displayDelimiter": ", ",
    #select框中最多顯示多少個。默認為3
    "minimumCountSelected": 3,
    #添加的…如果設置了minimumCountSelected,則覆蓋formatCountSelected選項。
    "ellipsis": false,
    #默認情況下是否打開select下拉列表。
    "isOpen": false,
    #是否保持select下拉菜單始終打開
    "keepOpen": false,
    #用鼠標懸停而不是單擊來打開選擇下拉菜單。
    "openOnHover": false,
    "container": null,
    #顯示要通過復選框項進行搜索的搜索字段。
    "filter": false,
    #只過濾optgroups而不過濾選項。
    "filterGroup": false,
    #設置篩選器占位符。也就是篩選data-filter-placeholder的
    "filterPlaceholder": "",
    #加快鍵盤的使用。輸入過濾文本,然后按Enter或空格將自動單擊select all和關閉下拉列表。鍵盤輸入過濾
    "filterAcceptOnEnter": false,
    #顯示清除圖標來取消選中的所有項目。
    "showClear": false,
    #允許您只選擇一個選項,如果選擇沒有多個屬性,此選項將自動設置為真
    "single": false
}
$('select').multipleSelect({
    placeholder: "請選擇",
});

設置下拉框提示語

$('select').multipleSelect({
    placeholder: "請選擇",
});

設置開啟搜索

$('select').multipleSelect({
    placeholder: "請選擇",
    //select框中最多顯示多少個
    minimumCountSelected: 20,
    //開啟搜索
    filter: true,
});

設置默認選中

#錯誤寫法
$('select').multipleSelect('setSelects', [1, 3]);

錯誤:Uncaught TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))

image-20201009164028550

正確寫法

 $('#select-keyword').multipleSelect('setSelects', [1, 3]);

清除默認選中

$('#select-keyword').multipleSelect('uncheckAll');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM