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 相关文章推荐
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
Apr 01 Javascript
JavaScript中“基本类型”之争小结
Jan 03 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
Javascript中Array用法实例分析
Jun 13 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
Jun 21 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
Vue动态获取width的方法
Aug 22 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 Javascript
vue实现日历备忘录功能
Sep 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
第十四节--命名空间
2006/11/16 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
php7 新增功能实例总结
2020/05/25 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
元旦晚会主持词
2014/03/24 职场文书
《长征》教学反思
2014/04/27 职场文书
机关搬迁方案
2014/05/18 职场文书
工作报告范文
2019/06/20 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript