layui checkbox关联选择

layui checkbox关联选择

<div class="layui-form-item">
			    <label class="layui-form-label">负责班级:</label>
			      <div class="layui-input-block" style="margin: 10px ;">
                     <li>
                         <input type="checkbox" class="parent"  lay-skin="primary" title="人事模块">
                         <ul>
                             <input type="checkbox" name="limits[]" lay-skin="primary" title="社区系统">
                            <input type="checkbox" name="limits[]" lay-skin="primary" title="用户" >
                            <input type="checkbox" name="limits[]" lay-skin="primary" title="角色">
                            <input type="checkbox" name="limits[]" lay-skin="primary" title="评论审核">
                         </ul>
                     </li>
                 </ul>
			  </div>
			  </div>
form.on('checkbox()', function(data){
        var pc =  data.elem.classList //获取选中的checkbox的class属性
        if(pc=="parent"){  //如果当前选中的checkbox class里面有parent
              var c =$(data.elem).siblings().children("input[type='checkbox']");
              c.each(function(){//遍历他们的孩子们
                 var e = $(this);  
                 e.prop("checked", data.elem.checked);
            });
        }else{
        	  var ul = $(data.elem).closest("ul");
        	   var c =ul.children("input[type='checkbox']");
        	   var clen = c.size();
        	   var xuanzhong = true;
        	   c.each(function(){//遍历他们的孩子们
                 var e = $(this);  
                 if(e.prop("checked")==false){
                	 xuanzhong=false;
                 }
               });
        	   $(data.elem).parent().siblings("input[type='checkbox']").prop("checked",xuanzhong);
        }
        
        form.render('checkbox');
        
});  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui 中,如果要实现多个 checkbox 的全选/取消全选功能,可以使用 `form` 模块的 `on` 方法,绑定 `checkbox` 的点击事件,然后通过 `prop` 方法修改其他 checkbox选择状态。 示例代码如下: HTML: ```html <div class="layui-form-item"> <input type="checkbox" name="checkAll" lay-skin="primary" title="全选"> <div class="layui-input-block"> <input type="checkbox" name="like[1]" lay-skin="primary" title="复选框1"> <input type="checkbox" name="like[2]" lay-skin="primary" title="复选框2"> <input type="checkbox" name="like[3]" lay-skin="primary" title="复选框3"> </div> </div> ``` JavaScript: ```javascript //监听全选 form.on('checkbox(checkAll)', function(data){ var child = $(data.elem).parents('.layui-form').find('input[type="checkbox"]'); child.each(function(index, item){ item.checked = data.elem.checked; }); form.render('checkbox'); }); //监听每个复选框 form.on('checkbox', function(data){ var child = $(data.elem).parents('.layui-form').find('input[type="checkbox"]'); var checkedChild = $(data.elem).parents('.layui-form').find('input[type="checkbox"]:checked'); if (checkedChild.length === child.length) { $(data.elem).parents('.layui-form').find('input[name="checkAll"]').prop('checked', true); } else { $(data.elem).parents('.layui-form').find('input[name="checkAll"]').prop('checked', false); } form.render('checkbox'); }); ``` 以上代码中,监听了全选复选框和每个子复选框的点击事件,通过 `prop` 方法修改其他 checkbox选择状态,最后通过 `form.render('checkbox')` 方法重新渲染 checkbox,使其生效。 希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值