Multiple Select 是一个通过复选框来选择多元素的 jQuery 插件:).
官网地址 导入文件

//本地的
<link rel="stylesheet" type="text/css" href="__PUBLIC__/libs/multiple-select-develop/dist/multiple-select.css">
//线上的
 <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.js"></script>
 //本地的
 <script type="text/javascript" src="__PUBLIC__/libs/multiple-select-develop/dist/multiple-select.js"></script>

如果你下拉框点击不显示,可以试试换jquery版本
我实现的是多选的 加一个multiple属性
1.html

<select id='checkedLevel' style="width:70%;height:34px;" multiple="multiple">
 </select>
 //为了提交数据,把下拉框选中的项的value放在input中  我是需要这么做,你可以不要
 <input type="hidden" class="productinput" name="Brand" value>

2.js

<script>
        var $select = $('#checkedLevel')
        $brands = "{$[type]form.value1}"; //传过来需要编辑的数据   1,2,3 选中项的value值
        console.log($brands)
        $(function () {
            var $el = $brands.split(',')
            console.log($el)
            var select = []
            var info = []
            var checkall = []
            var isall = false
            window.onload = function () {
				//通过ajax动态获取数据
                $.ajax({
                    url: "/Wallet/BrandProductCoupons/getBrands",
                    type: "POST",
                    success: function (data) {
                        console.log('数据' + JSON.stringify(data))
                        info = data.info
                        for (var i = 0; i < data.info.length; i++) {
                            var $opt = $('<option />', {
                                value: data.info[i].value,
                                text: data.info[i].text
                            }
                            //获取完数据要重新刷新下页面
                            $select.append($opt).multipleSelect('refresh')
                        }
                        //编辑部分
                        if ($el) {
                            console.log(12334)
                            //将获取到的数据显示出来
                              $('#checkedLevel').multipleSelect('setSelects', $el)
                              $el.forEach(item => {
                                select.push(item)
                            })
                            console.log(select);
                            //将选中的项 select数组放在input输入框中,来提交数据
                    		//你可以直接把select提交了就可以  不需要这一步
                           $('.productinput').val(select)
                        }
                        //一定不要忘记重新刷新页面
                        $select.multipleSelect('refresh')
                    }

                });
            }
            $select.multipleSelect({
                addTitle: true, //鼠标点悬停在下拉框时是否显示被选中的值
                selectAll: false, //是否显示全部复选框,默认显示
                name: "value",
                selectAllText: "选择全部", //选择全部的复选框的text值
                allSelected: "全部", //全部选中后显示的值
                //delimiter: ', ', //多个值直接的间隔符,默认是逗号
                placeholder: "Brand", //不选择时下拉框显示的内容
                filter: false, //是否加搜索
                displayValues: false, //是否显示value值
                minimumCountSelected: 7, //select框中最多显示多少个。默认为3
                //显示的数据
                // data: [
                // {
                //     text: 'Option 2',
                //     value: 1
                // },
                // {
                //     text: 'Option 3',
                //     value: 1
                // }
                // ]
                //点击选项的事件  官网上还有很多事件,可以去查找你需要监听的事件
                onClick: function (view) {
                    console.log(view)
                 //通过view中的selected属性的true或false来区分是选中还是取消
                  if (view.selected) {
                    //如果select中没有view.value的的存在 才把view.value的值push进select数组中,为了防止在编辑的时候重复添加
                        if (select.indexOf(view.value) == -1) {
                            select.push(view.value)
                        }
                    } else {
                    //当view.selected为false  取消选中
                     //如果select中有view.value的存在,将view.value那一项从数组中移出
                        if (select.indexOf(view.value) != -1) {
                            select.splice(select.indexOf(view.value), 1)
                        }
                    }
                    //将选中的项 select数组放在input输入框中,来提交数据
                    //你可以直接把select提交了就可以  不需要这一步
                   $('.productinput').val(select)
                },
            });
        })





    </script>

multipleselection赋值居中_jquery


之后又有一个查询的需求,输入框 回车打开下拉框

//input输入监听事件
  var a=''
  $(".input1").bind('input propertychange', function () {
                a = $(".input1").val();
                console.log(a)
            })
            //回车事件绑定
            $('.input1').bind('keydown', function (event) {
                if (event.keyCode == "13") {
                    //回车执行查询
                    console.log('a的值为' + a)
                    //将数据提交获取查询到的数据 
                    //打开下拉框
                    setTimeout(function () {
                        $select.multipleSelect('open')
                    }, 100)

                }
            });

multipleselection赋值居中_数组_02