zoukankan      html  css  js  c++  java
  • CheckBox全选终极方案

    在我们的程序开发中经常会要用到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;
    }
  • 相关阅读:
    在linux中连接wifi
    解决Chrome插件安装时出现的“程序包无效”问题
    全网最简单明了的MySQL连接Eclipse方法(JDBC详细安装方式及简单操作)2020新版
    机器学习--机器学习的分类
    背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 3
    C++课程设计详解-12306的模拟实现
    C++课程设计,12306模拟写起来就是这么粗暴
    计算机组成原理--储存器概述
    JAVA I/O 与装饰者模式UML图
    PAT-字符串处理-B 1024 科学计数法 (20分)
  • 原文地址:https://www.cnblogs.com/jordan2009/p/2619774.html
Copyright © 2011-2022 走看看