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;
    }
  • 相关阅读:
    最通俗易懂的技术解读
    laya学习查漏补缺
    vue+webpack实现懒加载的三种方式
    web安全防范策略
    http/1.x、http/2与https的区别、以及http3
    设备检测
    移动端调试利器------微信开源项目
    SqlConnection 在linux 连接 mssql 挂起的问题。
    rabbitmq 启用日志跟踪
    使用脚本把.net core 程序部署到 docker 容器中
  • 原文地址:https://www.cnblogs.com/jordan2009/p/2619774.html
Copyright © 2011-2022 走看看