一、思路
全选:判断“全选”checkbox的状态,如果选中则把tbody下所有的checkbox选中,反之
单选:主要是判断有没有全选,如果不是选中状态就把全选的checkbox状态设置为false,如果是选中就拿所有选中状态下“name=id”的chekbox和所有‘’name=id"的数量去比较,如果一样表示全选了,设置全选的chekbox为选中状态,反之。
二、代码
1.css部分,直接搬运的django项目里面的。
<table border="2" style="margin: 0 auto;text-align: left;width: 800px">
<thead>
<tr>
<th><input type="checkbox" name="all">全选</th>
<th>id</th>
<th>用户名</th>
<th>昵称</th>
<th>邮箱</th>
<th>角色</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tb">
{% for user in userlist %}
<tr>
<td><input type="checkbox" name="id" value="{{ user.UserID }}" onclick="userCheck(this)"></td>
<td>{{ user.UserID }}</td>
<td>{{ user.Username }}</td>
<td>{{ user.NickName }}</td>
<td>{{ user.Email }}</td>
<td>{{ user.Role.RoleName }}</td>
<td>
<img id="update" src="/static/img/edit-new.png" onclick="getUser({{ user.UserID }})">
<img id="delete" src="/static/img/edit_remove.png" onclick="userdelete({{ user.UserID }})">
</td>
</tr>
{% endfor %}
</tbody>
</table>
2.js部分,name和id都可以根据实际修改
$(function () {
//全选,设置chheckbox name='all' tbody id=tb
$("input[name=all]").click(function () {
if (this.checked) {
$("#tb :checkbox").prop("checked", true);
} else {
$("#tb :checkbox").prop("checked", false);
}
});
});
//单选 设置name=id
function userCheck(ths) {
if (ths.checked == false) {
$("input[name=all]:checkbox").prop('checked', false);
}
else {
var count = $("input[name='id']:checkbox:checked").length;
if (count == $("input[name='id']:checkbox").length) {
$("input[name=all]:checkbox").prop("checked", true);
}
}
}
该文章介绍了一种使用JavaScript和jQuery实现表格中全选和单选功能的方法。通过监听全选复选框的状态,动态更新tbody中的所有行的选中状态。同时,当单个行的复选框被选中或取消时,会检查是否所有行都已选中,以更新全选复选框的状态。示例代码基于Django框架生成的HTML表格结构。

1417

被折叠的 条评论
为什么被折叠?



