Layui多选只有最后一个值的处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近公司使用layui来开发网页界面,在使用layui的时候,发现了一个问题:就是layui中的checkBox在多选的情况下然后使用ajax异步提交会出现只是提交最后一个checkBox的值的情况。我在网上也搜索了一些解决方案,大多都是在提交前重新设置datafield来提交。如果不想这样子做的话,我这里想到了另外一种方法,写在这里和大家交流。


一、主要思想

通过增加一个隐藏的输入来对于选中的值来进行整合和传递。例如下面的代码所示,一开始需要的参数名称是taskQuery.taskStatus,但是因为layui只是传递了最后的一个选中的值。所以干脆新增加一个隐藏的input来传递taskQuery.taskStatus,其他的input当做搜集信息使用。

二、使用步骤

1.原来的代码

代码如下(示例):

 状态:<br>
 <input type="checkbox" name="taskQuery.taskStatus" value="1" title="新建" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="2" title="启动" lay-skin="primary" checked>
 <input type="checkbox" name="taskQuery.taskStatus" value="3" title="接受" lay-skin="primary" checked>
 <input type="checkbox" name="taskQuery.taskStatus" value="4" title="拒绝" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="5" title="暂停" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="6" title="终止" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="7" title="完成" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="8" title="关闭" lay-skin="primary">
 <input type="checkbox" name="taskQuery.taskStatus" value="10" title="审核中" lay-skin="primary">
 <br>

2.修改以后

代码如下(示例):

<div class="checkBox-dealwithClass">
 状态:<br>
 <input type="checkbox" name="taskStatus" value="1" title="新建" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="2" title="启动" lay-skin="primary" checked>
 <input type="checkbox" name="taskStatus" value="3" title="接受" lay-skin="primary" checked>
 <input type="checkbox" name="taskStatus" value="4" title="拒绝" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="5" title="暂停" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="6" title="终止" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="7" title="完成" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="8" title="关闭" lay-skin="primary">
 <input type="checkbox" name="taskStatus" value="10" title="审核中" lay-skin="primary">
 <br>
 <input type="text" class="layui-hide" name="taskQuery.taskStatus" value="2,3">
 </div>

使用的监听的js:

    layui.form.on('checkbox()', function(data){
        var arr=[];
        $(this).closest(".checkBox-dealwithClass").children("input:checkbox").each(function(){
            if ($(this).is(':checked')) { //判断选中
                arr.push($(this).val())
            }
        });
        $(this).closest(".checkBox-dealwithClass").children("input:text").attr("value",arr);
    });

总结

以上就是今天要讲的内容,本文仅仅简单介绍了layui的checkbox的一种解决方法。如果有问题可以提出来,谢谢。

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多选下拉框组件是一款非常实用的组件,可以极大地提升用户的交互体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值