jquery实现多选框 全选 取消全选 自动勾选 自动去除勾选状态
主要实现以下功能
【全选/取消】点击全选框后,下面的子复选框全部选中。取消全选框勾选后,下面的子复选框全部取消选中。
当所有子复选框均被选中后,全选框自动勾选为选中状态。当某个子复选框被取消选中后,全选框自动取消勾选状态。
如下图:
代码如下:
html 代码
<table> <thead> <tr> <th>序号<input type="checkbox" class="loginName" id="all"></th> <th>员工号</th> <th>用户名称</th> </tr> </thead> <tbody id="checklist"> <g:each in="${users}" var="user" status="index"> <tr class='table-c' userId="${user.id}" userName="${user.name}"> <td>${index + 1} <input type="checkbox" name="loginName" class="loginName" value="${user.id}" > </td> <td>${user.loginName}</td> <td>${user.name}</td> </tr> </g:each> </tbody> </table>
注意:全选框ID:all ; 子复选框最外层的ID 为:chekclist
JS代码
注意:Jquery.js记得引入,这里没写,放到页面底部
<script> $(function(){ /*全选按钮状态显示判断*/ $("#checklist").find("input[type='checkbox']").click(function(){ /*初始化选择为TURE*/ $("#all")[0].checked = true; /*获取未选中的*/ var nocheckedList = new Array(); $("#checklist").find('input:not(:checked)').each(function() { nocheckedList.push($(this).val()); }); /*状态显示*/ if (nocheckedList.length == $("#checklist").find('input').length) { $("#all")[0].checked = false; }else if(nocheckedList.length ==0){ $("#all")[0].checked = true; }else if(nocheckedList.length){ $("#all")[0].checked = false; } }); // 全选/取消 $("#all").click(function(){ // alert(this.checked); if ($(this).is(':checked')) { $("#checklist").find('input').each(function(){ $(this).prop("checked",true); }); } else { $("#checklist").find('input').each(function(){ $(this).removeAttr("checked",false); // 根据官方的建议:具有 true 和 false 两个属性的属性, // 如 checked, selected 或者 disabled 使用prop(),其他的使用 attr() $(this).prop("checked",false); }); } }); }); </script>
顶(0)
踩(1)
- 最新评论