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 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
jquery的Theme和Theme Switcher使用小结
Sep 08 Javascript
深入探讨javascript函数式编程
Oct 11 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
js 动态校验开始结束时间的实现代码
May 25 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 Javascript
解决vue中provide inject的响应式监听
Apr 19 Vue.js
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
php基础知识:类与对象(1)
2006/12/13 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
php实现的简单检验登陆类
2015/06/18 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
git进行版本控制心得详谈
2017/12/10 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
职业生涯规划怎么写
2013/12/29 职场文书
促销活动策划方案
2014/01/12 职场文书
投标邀请书范文
2014/01/31 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
挂牌仪式主持词
2014/03/20 职场文书
诚信承诺书模板
2014/05/26 职场文书
施工安全责任书范本
2014/07/24 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server