表单全选取消全选

案例分析:

1.全选和取消全选做法:让下面所有复选框的checked属性(选中状态)跟随全选按钮即可;

2.下面复选框需要全部选中,上面的全选才可以选中做法:给下面所有复选框绑定点击事件,每次点击,都要循环查看下面所有的复选框是否有没选中的,如果有一个没选中的,上面全选框就不选中。

效果图:

代码:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3     <head>
  4         <meta charset="UTF-8">
  5         <title>表单全选与取消全选</title>
  6         <style>
  7             *{
  8                 margin: 0;
  9                 padding: 0;
 10             }
 11             table{
 12                 margin: 100px auto;
 13                 text-align: center;
 14                 border: 1px solid gray;
 15                 border-spacing: 0;
 16                 cursor: pointer;;
 17             }
 18             th,td{
 19                 border: 1px solid gray;
 20                 padding: 10px;
 21             }
 22             thead{
 23                 background-color: powderblue;
 24             }
 25             .bg{
 26                 background-color: rgb(190, 189, 189);
 27             }
 28         </style>
 29     </head>
 30     <body>
 31         <div id="wrap">
 32             <table>
 33                 <thead>
 34                     <tr>
 35                         <th><input type="checkbox" id="selectAll"></th>
 36                         <th>商品</th>
 37                         <th>价格</th>
 38                     </tr>
 39                 </thead>
 40                 <tbody id="select">
 41                     <tr>
 42                         <td><input type="checkbox"></td>
 43                         <td>iphone 8</td>
 44                         <td>3999</td>
 45                     </tr>
 46                     <tr>
 47                         <td><input type="checkbox"></td>
 48                         <td>iphone 8 plus</td>
 49                         <td>4999</td>
 50                     </tr>
 51                     <tr>
 52                         <td><input type="checkbox"></td>
 53                         <td>iphone 11</td>
 54                         <td>5999</td>
 55                     </tr>
 56                     <tr>
 57                         <td><input type="checkbox"></td>
 58                         <td>iphone 11 pro</td>
 59                         <td>9999</td>
 60                     </tr>
 61                 </tbody>
 62             </table>
 63         </div>
 64         <script>
 65             //设计鼠标移入和移出的背景变化
 66             var trs=document.getElementById("select").querySelectorAll("tr");
 67             for(var i=0;i<trs.length;i++){
 68                 //鼠标移入事件
 69                 trs[i].onmouseover=function(){
 70                     this.className="bg";
 71                 }
 72                 //鼠标移出事件
 73                 trs[i].onmouseout=function(){
 74                     this.className="";
 75                 }
 76             }
 77             //1.全选和取消全选
 78             //获取元素
 79             var selectAll=document.getElementById("selectAll");     //全选按钮
 80             var select=document.getElementById("select").getElementsByTagName("input");     //下面所有的复选框
 81             //注册事件
 82             selectAll.onclick=function(){
 83                 //this.checked可以得到当前复选框的选中状态,如果是true则表示选中,如果是false就表示未选中
 84                 for(var i=0;i<select.length;i++){
 85                     //看全选框是否全选,把它的选中状态赋值给下面所有的复选框
 86                     select[i].checked=this.checked;
 87                 }
 88             }
 89             //2.判断下面的是否全选
 90             for(var i=0;i<select.length;i++){
 91                 select[i].onclick=function(){
 92                     var flag=true;      //注意flag要放在点击事件里……
 93                     //下面的变量i是在另一个函数里,和外层的i是不同的作用域
 94                     for(var i=0;i<select.length;i++){
 95                         if(!select[i].checked){
 96                             flag=false;
 97                             break;
 98                         }
 99                     }
100                     selectAll.checked=flag;
101                 }
102             }
103         </script>
104     </body>
105 </html>

原文地址:https://www.cnblogs.com/cy1227/p/12297946.html

时间: 2024-10-12 06:32:20

表单全选取消全选的相关文章

jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换

应用一:单行文本框应用 需要用到的 API focus([[data],fn])   --> 当元素获得焦点时,触发 focus 事件 blur([[data],fn])     --> 当元素失去焦点时,触发 blur 事件 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title></ti

jQuery 复选框全选/取消全选/反选

jQuery实现的复选框全选/取消全选/反选及获得选择的值. 完整代码: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="../js/jquery-1.9.1.js"></script> <script type="text/javascript"> $(document).ready(fun

全选/取消全选那点事

今天我花了半天时间处理checkbox全选/取消全选那点事 技术领域 可信计算 其他   全选 申请日 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016  年  至 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 至今 年 专利类型 发明专利 实用新型   全选 授权

jquery全选/取消全选(反选)/单选操作

使用jQuery实现一组checkbox全选/取消全选,代码很简洁. jquery版本:2.0 先看看HTML代码,很简单的操作框 </head> <body>    <div>        <input id="checkAll" type="checkbox" />全选        <input name="subBox" type="checkbox" />

html checkbox 实现全选/取消全选

html checkbox  实现全选/取消全选 <html> <body> <table border="1"> <tr> <th><input type="checkbox" onclick="swapCheck()" /></th> <th>Month</th> <th>Savings</th> </tr

checkbox全选/取消全选

//checkbox全选/取消全选 $(function() { $("#checkAll").click(function() { if(this.checked){ $("input[name='cbxCommodity']").prop("checked","checked"); }else{ $("input[name='cbxCommodity']").removeAttr("check

AngularJS--购物车全选/取消全选功能实现

刚学习angularJS,于是练习写了一个类似于购物车的全选/取消全选的功能,主要实现的功能有: 1.勾选全选checkbox,列表数据全部被勾选,取消同理,用ng-model实现双向绑定: 2.选中列表中的所有checkbox,全选也会被勾选:(这里我想到的方法是给每一个对象增加checked字段,然后勾选触发echoChange()函数,用了一个cc变量计算当前checked为true的个数,然后再判断被勾选个数与数组长度是否相等,相等则证明全部被勾选,于是全选按钮也赋值为true;不知道还

jquery checkbox勾选/取消勾选的诡异问题

<form> 你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br /> <input type="checkbox" name="items" value="足球" />足球 <input type="checkbox" name="items" v

jquery checkbox勾选取消勾选的诡异问题

jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type="checkbox" id="CheckedAll" />全选/全不选<br />        <input type="checkbox" name="items" value="足球"