时间:2021-05-18
问题描述
1.最近用layui做后台界面,遇到layui跟ajax数据动态加载的checkbox,偶尔不能正常勾选,取消
2.有分页时,最后一页数据过少会导致其他页下方数据无法选中
3.页面没加载完或暴力测试时也会不能选中
利用layui更新渲染方法和网上的一些方法去解决后极大的减少了无法选中的情况,但是暴力测试时偶尔还会出现,实在不知道什么原因,所以就用了一个折中的方法——自己写一个复选框
<!--原有layui复选框--><td> <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon"></i></div></td><!--替换为自己写的--><td> <div a="off" class="checkBox" v-bind:data-id='x.Id' v-on:click="checkBox(i)"> <div></div> </div></td>自己写的同样支持vue绑定事件,并且支持单个选中、取消,全选和取消
//单个的选中取消 checkBox:function(n){ var checkbox = $('tbody tr').eq(n).find('.checkBox'); if (checkbox.attr("a") == "off") { checkbox.children("div").css({ "display" : "block" }); checkbox.attr("a","on"); }else { checkbox.children("div").css({ "display" : "none" }); checkbox.attr("a","off"); }}//全选取消checkBoxAll:function(){ var obj = $('thead').find('.checkBox'); if ($(obj).attr("a") == "off") { $('.checkBox div').css({"display" : "block"}); $('.checkBox').attr("a","on"); }else { $('.checkBox div').css({"display" : "none"}); $('.checkBox').attr("a","off"); }}全选或者选中其中几个,获取对应id,删除或进行其他操作
function getId() { var obj = $("tbody .checkBox"); var arr=''; obj.each(function(index, el) { if(obj.eq(index).attr("a") == "on"){ arr += obj.eq(index).attr('data-id')+ ',' } }); return arr;}以上这篇解决layui动态加载复选框无法选中的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
功能:a:实现点击复选框的时候全选所有的子复选框,再点击取消所有复选框的选中状态b:有一个子复选框选中则父复选框选中所有子复选框都不选中则父复选框不选中复制代码
之前总结了一下关于jquery如何判断复选框是否选中的问题,今天总结如何判断js复选框是否选中javascript判断复选框是否选中,下面通过例子来说明(现在有
JS网页–全选和取消全选,供大家参考,具体内容如下表格,初始状态下复选框都是未选中状态,选中表头的复选框后,下面几个复选框变为选中状态,取消表头复选框选中状态后
对复选框组的全选、全不选、不全选,获取选中的复选框的值的操作1.点击全选按钮,复选框组全部选中或者全部取消。2.实现全选按钮和复选框组的联动,当复选框组中有一个
首先我们要实现的内容的需求有如下几点:1.在购物车页面中,当选中“全选”复选框时,所有商品前的复选框被选中,否则所有商品的复选框取消选中。2.当所有商品前的复选