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中的闭包原理分析
Mar 08 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
Javascript中构造函数要注意的一些坑
Jan 23 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 jQuery
使用jQuery,Angular实现登录界面验证码详解
Apr 27 jQuery
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
vue学习教程之带你一步步详细解析vue-cli
Dec 26 Javascript
深入理解移动前端开发之viewport
Oct 19 Javascript
微信小程序如何获取用户头像和昵称
Sep 23 Javascript
JS图片懒加载的优点及实现原理
Jan 10 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注释实例技巧
2008/10/03 PHP
php牛逼的面试题分享
2013/01/18 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
vue.js实现三级菜单效果
2019/10/19 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
文明学生标兵事迹
2014/01/21 职场文书
出纳员岗位职责
2014/03/13 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
大学生社会实践方案
2014/05/11 职场文书
爱国口号
2014/06/19 职场文书
法学求职信
2014/06/22 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js
HTML基本元素标签介绍
2022/02/28 HTML / CSS
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android