登陆 | 注册

使用xm-select实现下拉多选

使用xm-select实现下拉多选,配合ThinkPHP8和Layui实现全过程。

xmSelect是LAYUI的下拉多选解决方案 1.多选, 单选, 重复选 2.分组, 远程搜索, 本地搜索, 分页 3.自定义主题, 工具条 4.下拉树,下拉任意 ... 让下拉选择变成一种艺术。

xm-select官网:https://xm-select.com/index.html

动画.gif


第一步:先引入JS

<script type="text/javascript" src="xm-select.js"></script>

注:无需额外引入CSS,作者已经将CSS嵌入到JS文件里了。


第二步:做一个隐藏域用于存放选择结果,做一个普通元素用于渲染下拉框

<!--隐藏域-->
<input type="hidden" name="zhuanti_ids" id="zhuanti_ids" value="" class="layui-input">

<!--下拉框-->
<div id="zhuanti" class="xm-select-demo"></div>

第三步:开始渲染,并且配合后端取值和赋值

<script>
var zhuanti = xmSelect.render({
    el: '#zhuanti', 
    language: 'zn',
    filterable:'true',
    //data是原始下拉列表,可以从后台直接assign过来,然后这里用volist循环一下,我这里只放几个演示数据
    data: [
      {name: '张三', value: 1},
	{name: '李四', value: 2},
	{name: '王五', value: 3},
    ],
    //这里主要监听(点击叉号删除了一个元素)
    on: function(data){
	    var ids = '';
	    $.each(data.arr, function(index, value) {
        ids = ids + value.value + ",";
      });
      //把修改后的值写入到文本框里
      $("#zhuanti_ids").val(ids.replace(/(^,)|(,$)/g,''));
    },
    //选择完成,下拉关闭回调->把最终的值写入到文本框里
    hide(){
       $("#zhuanti_ids").val(zhuanti.getValue("valueStr"));
    }
})
</script>