layui select 多选

先上效果图

1. 引入需要的 js,css 文件。

<link rel="stylesheet" href="/layui/css/layui.css" media="all"/>
<link rel="stylesheet" href="/layui/formSelects-v4.css"/>

<script src="/layui/layui.js"></script>
<script src="/layui/layui.all.js"></script>
<script src="/layui/formSelects-v4.js"></script>

下载地址https://gitcode.net/mirrors/hnzzmsf/layui-formSelects/-/tree/master/dist

2.  页面元素及其属性。

<div class="layui-form-item">
   <div class="layui-input-inline layui-form" style="white-space:nowrap;width: 360px;">
        <select id="categoryId" name="categoryId" class="layui-input" placeholder="商品分类"
                 xm-select="select1" xm-select-show-count="3" xm-select-search=""></select>
   </div>
</div>
属性名说明示例
xm-select多选核心, 标记不同的多选, 多选IDxm-select="id"
xm-select-max多选最多选择数量xm-select-max="3"
xm-select-skin皮肤xm-select-skin=" default | primary | normal | warm | danger "
xm-select-search本地搜索 & 远程搜索xm-select-search, xm-select-search="/search", 值为空时已有条目过滤搜索, 有值时开启远程搜索
xm-select-create条目不存在时创建, 标记性属性xm-select-create
xm-select-direction下拉方向xm-select-direction="auto|up|down", 自动, 上, 下, 默认自动模式
xm-select-radio单选模式xm-select-radio, 最多只能选择一个
xm-select-search-type搜索框的显示位置xm-select-search-type="title" 在下拉选title部分显示, xm-select-search-type="dl" 在选项的第二条显示
xm-select-show-count多选显示的label数量xm-select-show-count="2", 超出后隐藏
xm-select-search搜索xm-select-search=""

3. 初始化。

var formSelects = layui.formSelects;

//全局定义一次, 加载formSelects
layui.config({
    base: '../src/' //此处路径请自行处理, 可以使用绝对路径
}).extend({
    formSelects: 'formSelects-v4'
});

// 获取数据并且铺数据  -- 商品分类列表
CoreUtil.sendAjax("/api/bus-material-category/getAllList", {}, function (res) {
    if (res.data != null) {
        var data = res.data;
        var keys = [];
        //通过循环遍历将数据赋值到temp这个二维数组中
        for (var i = 0; i < data.length; i++) {
            var temp = {
                 "name": res.data[i].name,
                 "value": res.data[i].id//这里需要注意,value应该不同
             }
             keys.push(temp)
         }
         //formSelect需要的arr是[{"name":"shuju1","value":"shuju2"},{....}]这样的格式
         formSelects.data("select1", "local", {
             arr: keys
         });
         //form.render('select');
     }
}, "POST", false, function (res) {

});

layui.use(['table', 'laypage', 'layer', 'laydate', 'formSelects'], function () {

});

 4. 获取选中的数据。

formSelects.value('select1');         // [{"name":"上海","val":"2"},{"name":"深圳","val":"4"}]

formSelects.value('select1', 'all');  // [{"name":"上海","val":"2"},{"name":"深圳","val":"4"}]

formSelects.value('select1', 'val');   // ["2","4"]

formSelects.value('select1', 'valStr'); // 2,4

formSelects.value('select1', 'name');   // ["上海","深圳"]

formSelects.value('select1', 'nameStr');// 上海,深圳

 5. 设置select的选中值。

formSelects.value('select1', [2, 4]);   // 选中value为2和4的option → 上海,深圳

6. 追加或删除select的选中值。

formSelects.value('select1', [2, 4], true); // 追加value为2和4的option, 如果该值已选中则跳过, 该值未选中则选中

formSelects.value('select1', [2, 4], false);// 删除value为2和4的option, 如果该值没有选中则跳过, 该值被选中则取消选中

 7. 监听select的选中与取消。

/**

 * 1.监听select的选中与取消

 *

 * formSelects.on(ID, Function);

 *

 * @param ID        xm-select的值

 * @param Function  自定义处理方法

 * @param isEnd     是否获取实时数据, true/false

 */

var formSelects = layui.formSelects;

formSelects.on('select1', function(id, vals, val, isAdd, isDisabled){

    //id:           点击select的id

    //vals:         当前select已选中的值

    //val:          当前select点击的值

    //isAdd:        当前操作选中or取消

    //isDisabled:   当前选项是否是disabled

     

    //如果return false, 那么将取消本次操作

    return false;  

});

 

//以下两种方式则配置所有的多选select

formSelects.on(function(id, vals, val, isAdd, isDisabled){

    ...

});

formSelects.on(null, function(id, vals, val, isAdd, isDisabled){

    ...

});

 

//4.0.0.0813版本之前, 受到了颇多的小伙伴吐槽, 此版本加上了获取实时数据的方法

formSelects.on('select1', function(id, vals, val, isAdd, isDisabled){

    //id:           点击select的id

    //vals:         当前select已选中的值

    //val:          当前select点击的值

    //isAdd:        当前操作选中or取消

    //isDisabled:   当前选项是否是disabled

}, true);

8. 禁用多选。

/**

 * 1.禁用多选

 * formSelects.disabled(ID);

 * @param ID        xm-select的值

 */

var formSelects = layui.formSelects;

formSelects.disabled('select1');

 
//以下方式则禁用所有的已存在多选

formSelects.disabled();


/**

 * 1.启用多选, 启用被禁用的多选

 *

 * formSelects.undisabled(ID);

 *

 * @param ID        xm-select的值

 */

var formSelects = layui.formSelects;

formSelects.undisabled('select1');

 

//以下方式则启用所有的已存在多选

formSelects.undisabled();

9. sql

categoryIds = '2,4,11,23'

<if test="categoryIds != null and categoryIds != ''">
    and b.category_id in
    <foreach item="item" index="index" collection="categoryIds.split(',')"  open="(" separator="," close=")">
        #{item}
    </foreach>
</if>

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Layui下拉框组件是一款基于Layui框架开发的多下拉框组件,它可以让用户在下拉框中择多个项,同时还支持搜索功能,方便用户快速定位所需项。 该组件的使用非常简单,只需要在页面中引入相关的JS和CSS文件,并按照一定的格式配置数据即可。以下是一个简单的示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>多下拉框组件示例</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> </head> <body> <div class="layui-form-item"> <label class="layui-form-label">多下拉框</label> <div class="layui-input-block"> <select name="test" xm-select="multi" xm-select-search> <option value="">请择</option> <option value="1">项1</option> <option value="2">项2</option> <option value="3">项3</option> <option value="4">项4</option> <option value="5">项5</option> </select> </div> </div> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script> <script> layui.use(['form', 'xmSelect'], function(){ var form = layui.form; var xmSelect = layui.xmSelect; xmSelect.render({ el: 'select[name="test"]', tips: '请择', searchTips: '搜索项', filterable: true, data: [ {name: '项1', value: '1'}, {name: '项2', value: '2'}, {name: '项3', value: '3'}, {name: '项4', value: '4'}, {name: '项5', value: '5'} ] }); }); </script> </body> </html> ``` 在上面的示例中,我们使用了Layui框架和xmSelect组件,同时在HTML中定义了一个多下拉框。在JavaScript中使用xmSelect.render方法对该下拉框进行渲染,并配置了相关的参数,如提示语、搜索提示语、数据等。 总的来说,Layui下拉框组件是一款非常实用的组件,可以极大地提升用户的交互体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值