layui checkbox 反选/全选/取消单个取消全选/全部选中勾上全选
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">公告标题</label>
<div class="layui-input-inline">
<input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择辖区机关</label>
<div class="layui-input-block">
<input type="checkbox" lay-skin="primary" lay-filter="select_all" class="select_all" title="全部">
<input type="checkbox" lay-skin="primary" lay-filter="invert" class="invert" title="反选">
<br/><br/>
<input type="checkbox" name="police_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="鲁山县公安局" value="10001">
<input type="checkbox" name="police_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="宝丰县公安局" value="10002">
<input type="checkbox" name="police_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="汝州市公安局" value="10003">
<input type="checkbox" name="police_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="舞钢市公安局" value="10004">
<input type="checkbox" name="police_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="叶县公安局" value="10005">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择辖区公司</label>
<div class="layui-input-block">
<input type="checkbox" lay-skin="primary" lay-filter="select_all" class="select_all" title="全部">
<input type="checkbox" lay-skin="primary" lay-filter="invert" class="invert" title="反选">
<br/><br/>
<input type="checkbox" name="company_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="北京分公司" value="10001">
<input type="checkbox" name="company_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="上海分公司" value="10002">
<input type="checkbox" name="company_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="西安分公司" value="10003">
<input type="checkbox" name="company_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="常州分公司" value="10004">
<input type="checkbox" name="company_id" lay-skin="primary" lay-filter="select_single" class="select_single" title="肇庆分公司" value="10005">
</div>
</div>
</form>
<script type="text/javascript">
layui.use(['form','jquery'], function () {
var form = layui.form;
var $ = layui.jquery;
//全选
form.on('checkbox(select_all)', function (data) {
var a = data.elem.checked;
var parent = data.elem.parentNode;
if (a == true) {
$(parent).children(".select_single").prop("checked", true);
form.render('checkbox');
} else {
$(parent).children(".select_single").prop("checked", false);
form.render('checkbox');
}
});
//反选
form.on('checkbox(invert)', function (data) {
var parent = data.elem.parentNode;
var item = $(parent).children(".select_single");
item.each(function () {
if ($(this).prop("checked")) {
$(this).prop("checked", false);
} else {
$(this).prop("checked", true);
}
})
form.render('checkbox');
});
//有一个未选中全选取消选中
form.on('checkbox(select_single)', function (data) {
var parent = data.elem.parentNode;
var item = $(parent).children(".select_single");
for (var i = 0; i < item.length; i++) {
if (item[i].checked == false) {
$(parent).children(".select_all").prop("checked", false);
form.render('checkbox');
break;
}
}
//如果都勾选了 勾上全选
var all=item.length;
for (var i = 0; i < item.length; i++) {
if (item[i].checked == true) {
all--;
}
}
if(all==0){
$(parent).children(".select_all").prop("checked", true);
form.render('checkbox');}
});
});
</script>
效果布局如下: