javascript中CheckBox全选终极方案


Posted in Javascript onMay 20, 2015

在我们的程序开发中经常会要用到CheckBox的全选,通常情况下是在一些数据绑定控件中如Gridview等

下面以Repeater为例,在Repeater的header 和item中放入CheckBox控件 。

<asp:Repeater ID="rptGroup" runat="server"> 
  <HeaderTemplate> 
    <table width="100%" cellspacing="1" >
      <tr> 
        <td width="3%" align="center" >
         <input type="checkbox" id="chkAll" name="chkAll" value="checkbox" 
         onclick="checkAll  ('chkAll',this);" />             
        </td> 
      </tr> 
  </HeaderTemplate> 
  <ItemTemplate> 
    <tr> 
    <td align="center" >
     <input type="checkbox" name="chkSelect" value='<%# Eval("ID") %>' 
     onclick="checkAll('chkAll',this);"/>
    </td> 
    </tr> 
  </ItemTemplate> 
  <FooterTemplate> 
    </table> 
  </FooterTemplate> 
 </asp:Repeater>

下面就是js脚本了

checkAll方法是实现CheckBox的全选和取消全选的。

function checkAll(chkAllID, thisObj) {
  var chkAll = document.getElementById(chkAllID);
  var chks = document.getElementsByTagName("input");
  var chkNo = 0;
  var selectNo = 0;
  for (var i = 0; i < chks.length; i++) {
    if (chks[i].type == "checkbox") {
      //全选触发事件  
      if (chkAll == thisObj) {
        chks[i].checked = thisObj.checked;
      }
      //非全选触发 
      else {
        if (chks[i].checked && chks[i].id != chkAllID)
          selectNo++;
      }
      if (chks[i].id != chkAllID) {
        chkNo++;
      }
    }
  }
  if (chkAll != thisObj) {
    chkAll.checked = chkNo == selectNo;
  }
}

checkSelectNo 函数是用来获取 所有checkbox 选中的个数 这个在用来判断 是否有勾选时非常有用。

function checkSelectNo(chkAllID) {
  var chks = document.getElementsByTagName("input");
  var selectNo = 0;
  for (var i = 0; i < chks.length; i++) {
    if (chks[i].type == "checkbox") {
      if (chks[i].id != chkAllID && chks[i].checked) {
        selectNo++;
      }
    }
  }
  return selectNo;
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
javascript 写类方式之三
Jul 05 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
深入浅析JavaScript中prototype和proto的关系
Nov 15 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
Jun 01 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
纯js实现动态时间显示
Sep 07 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
详解node Async/Await 更好的异步编程解决方案
May 10 Javascript
使用Sonarqube扫描Javascript代码的示例
Dec 26 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
javascript消除window.close()的提示窗口
May 20 #Javascript
在JS方法中返回多个值的方法汇总
May 20 #Javascript
AspNet中使用JQuery上传插件Uploadify详解
May 20 #Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 #Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 #Javascript
JS中的Replace方法使用经验分享
May 20 #Javascript
jquery使用经验小结
May 20 #Javascript
You might like
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PHP数组实例详解
2016/06/26 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
Python实现CET查分的方法
2015/03/10 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
Python如何读写字节数据
2020/08/05 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2015年资料员工作总结
2015/04/25 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书