复选框全选单选多选
先看下代码吧
{# 全选#}
var arr = [];
var uids = [];
var dic = {};
//设置每个复选框的name属性,获取到添加该属性的所有input框(不要给全选复选框添加)
var items = document.getElementsByName("deleteCount");
$('body').on('click', '全选按钮id或者class', function () {
var flag = $(this).prop('checked');
if (flag) {
$('单选框class').prop('checked', true);
for (let i = 0; i < items.length; i++) {
let itemStatus = items[i].disabled;
if (itemStatus) {
} else {
//获取选择的id
uids.push(items[i].id)
}
if (items[i].checked) {
arr.push(items[i].value)
}
}
data = JSON.stringify(uids);
dic['data'] = data;
//删除
$('.del1').unbind(); //保留一次点击效果,清楚多次点击
$('.del1').click(function () {
layer.confirm('您是否确认删除所选中的设备?', {
btn: ['确认', '取消'] //按钮
}, function () {
$.ajax({
});
}, function () {
layer.msg('您已取消删除', {icon: 1});
});
});
} else {
$('.tab').prop('checked', false);
}
});
{# 多选#}
var items = document.getElementsByName("deleteCount");
$('body ').on('click', '.tab', function () {
var arr = [];
var dic = {};
//计算选择的个数
for (i = 0; i < items.length; i++) {
if (items[i].checked) {
arr.push(items[i].id)
}
}
dic['data'] = data;
if (arr) {
data = JSON.stringify(arr);
dic['data'] = data;
//删除
$('.del1').unbind();
$('.del1').click(function () {
layer.confirm('您是否确认删除所选中的设备?', {
btn: ['确认', '取消'] //按钮
}, function () {
$.ajax({
});
}, function () {
layer.msg('您已取消删除', {icon: 1});
});
});
} else {
$('.tab').prop('checked', false);
}
});
还有一个注意的问题是 多次点击但不提交 导致ajax传值不准确
解除以前的绑定 实现只提交最后一次
$('.confirm_update').unbind()
代码很垃圾,但功能实现了