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编程起步(第六课)
Feb 27 Javascript
js树形控件脚本代码
Jul 24 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
25个好玩的JavaScript小游戏分享
Apr 22 Javascript
使用JavaScript和C#中获得referer
Nov 14 Javascript
小巧强大的jquery layer弹窗弹层插件
Dec 06 Javascript
jQuery基础知识点总结(DOM操作)
Jun 01 Javascript
利用React-router+Webpack快速构建react程序
Oct 27 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
vue实现购物车结算功能
Jun 18 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/01 无线电
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
一贴学会PHP 新手入门教程
2009/08/03 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
php实现的简单检验登陆类
2015/06/18 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
浅谈Python的异常处理
2016/06/19 Python
Python+django实现简单的文件上传
2016/08/17 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python正则中最短匹配实现代码
2018/01/16 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python使用PyQt5的简单方法
2019/02/27 Python
pandas取出重复数据的方法
2019/07/04 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
用python对oracle进行简单性能测试
2020/12/05 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
教育科研先进个人材料
2014/01/26 职场文书
司法所长先进事迹
2014/06/02 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL