multipleSelect下拉插件的使用

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>

在这里插入图片描述
之后又有一个查询的需求,输入框 回车打开下拉框

//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)

                }
            });

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现下拉列表的多选功能,并使用 xm-select 插件进行操作,可以按照以下步骤进行: 1. 引入必要的依赖文件。在 HTML 页面中引入 jQuery 和 xm-select 的 CSS 和 JavaScript 文件。 ```html <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/xm-select/2.4.1/xm-select.css"> <script src="https://cdn.bootcdn.net/ajax/libs/xm-select/2.4.1/xm-select.js"></script> ``` 2. 创建一个 `<select>` 元素,并为其添加一个唯一的 id。 ```html <select id="mySelect" multiple> <!-- 动态生成的选项将在这里插入 --> </select> ``` 3. 使用 JavaScript 动态生成选项,并初始化 xm-select 插件。 ```javascript // 获取需要插入选项的 select 元素 var selectElement = document.getElementById("mySelect"); // 定义动态生成的选项数据 var options = [ { name: "选项1", value: "option1" }, { name: "选项2", value: "option2" }, { name: "选项3", value: "option3" }, // 其他选项... ]; // 动态生成选项 options.forEach(function (option) { var optionElement = document.createElement("option"); optionElement.text = option.name; optionElement.value = option.value; selectElement.appendChild(optionElement); }); // 初始化 xm-select 插件 xmSelect.render({ el: '#mySelect', tips: '请选择选项', }); ``` 通过以上步骤,就可以实现使用 xm-select 插件实现下拉列表的动态数据多选功能。请注意,上述代码只是一个简单的示例,你可以根据自己的实际需求进行相应的修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值