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的一种解决方法。如果有问题可以提出来,谢谢。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值