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 相关文章推荐
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
JS 数字转换研究总结
Dec 26 Javascript
JS在IE下缺少标识符的错误
Jul 23 Javascript
js中style.display=&quot;&quot;无效的解决方法
Oct 30 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
vue2.0 循环遍历加载不同图片的方法
Mar 06 Javascript
JS 实现分页打印功能
May 16 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
Vue基础配置讲解
Nov 29 Javascript
vue项目配置同一局域网可使用ip访问的操作
Oct 23 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 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 magento后台无法登录问题解决方法
2016/11/24 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
大学生毕业自我鉴定
2013/11/06 职场文书
中学教师培训制度
2014/01/31 职场文书
十佳护士先进事迹
2014/05/08 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL