js控制选中、取消选中 ,layui实现全选、取消全选
layui版本2.5.x
html部分:
<form class="layui-form" id="form-checkbox">
// checkbox - 全选框
<input type="checkbox" id="allCheckbox" value="全选" lay-skin="primary" lay-filter="selectAllCheckbox" >
</form>
<form class="layui-form" >
// checkbox - 3个单选框
<div id="single-checkbox">
<input type="checkbox" value="选项1" lay-skin="primary" lay-filter="selectSingleCheckbox" >
<input type="checkbox" value="选项2" lay-skin="primary" lay-filter="selectSingleCheckbox" >
<input type="checkbox" value="选项3" lay-skin="primary" lay-filter="selectSingleCheckbox" >
</div>
</form>
js部分:
layui.use('form', function() {
var form = layui.form;
form.on('checkbox(selectAllCheckbox)', function(data) { // 全选、取消全选方法
// 获取所有 单选框
var all_single_checkbox = document.getElementById('single-checkbox').getElementsByTagName('input');
// 获取 全选框的class属性
var checkbox_div = document.getElementById('form-checkbox').getElementsByTagName('div');
var checkbox_div_class = checkbox_div[0].getAttribute("class");
if(checkbox_div_class.search("layui-form-checked") == -1) { // 未选中(搜索class的选中属性,不存在返回 -1)
// 选中 所有单选框
for (var i = 0; i < all_single_checkbox.length; i++) {
$(all_single_checkbox[i]).prop("checked", true); // 选中 单个单选框
}
}else{ // 已选中
// 取消选中 所有单选框
for (var i = 0; i < all_single_checkbox.length; i++) {
$(all_single_checkbox[i]).prop("checked", false); // 取消选中 单个单选框
}
}
form.render("checkbox");// 重新渲染 checkbox控件, 必须要有!!!
});
});