• 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');
    
  • 相关阅读:
    6 款好用到爆的 JSON 处理工具,极大提高效率!
    task最佳实践
    Mac系统维护工具System Toolkit激活版
    多引擎数据库管理JetBrains DataGrip 2022激活版
    centos7使用iptables
    gitlab创建账号密码
    gitlab为项目添加新成员
    gitlab推送代码报错remote: GitLab: You are not allowed to push code to protected branches on this project.
    IDEA正版激活/永久激活
    mongdb学习
  • 原文地址:https://www.cnblogs.com/makalochen/p/13790184.html
Copyright © 2020-2023  润新知