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 相关文章推荐
jquery 双色表格实现代码
Dec 08 Javascript
JQuery UI的拖拽功能实现方法小结
Mar 14 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
Jun 27 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
Mar 05 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
Jul 05 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
vuejs指令详解
Feb 07 Javascript
新手简单了解vue
May 29 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
Sep 05 Javascript
浅谈JavaScript节流和防抖函数
Aug 25 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
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
售后求职信范文
2014/03/15 职场文书
表彰大会主持词
2014/03/26 职场文书
初中班主任寄语
2014/04/04 职场文书
爱国演讲稿500字
2014/05/04 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
会议开幕词
2015/01/28 职场文书
2015年导购员工作总结
2015/04/25 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
Android自定义双向滑动控件
2022/04/19 Java/Android
Python中的 No Module named ***问题及解决
2022/07/23 Python