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 相关文章推荐
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
Jan 27 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
JavaScript页面模板库handlebars的简单用法
Mar 02 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
Jan 04 Javascript
vue数据双向绑定原理解析(get &amp; set)
Mar 08 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
js实现提交前对列表数据的增删改查
Jan 16 Javascript
js实现验证码功能
Jul 24 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
基于mysql的论坛(2)
2006/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
Python的Flask框架中web表单的教程
2015/04/20 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python实现的归并排序算法示例
2017/11/21 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python opencv之SURF算法示例
2018/02/24 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
品质口号大全
2014/06/17 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers