zoukankan      html  css  js  c++  java
  • 多选框全选练习

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
        // onload事件在整个页面加载完执行
            window.onload=function(){
    
                // 获取四个多选框items (全局定义)
                var items = document.getElementsByName("items");
                // 获取全选/全不选的多选框
                var checkedAllBox = document.getElementById("checkedAllBox");
    
    // ---------------------------------------全选中事件-------------------------------------------------------------
    
                // 1.checkedAllBtn
                // 为id为checkedAllBtn的按钮绑定一个单击响应函数
                var checkedAllBtn=document.getElementById("checkedAllBtn");
                checkedAllBtn.onclick=function(){
                    // 遍历items
                    for(var i=0;i<items.length;i++){
    
                        // 通过多选框的checked属性可以来获取或设置多选框的选中状态
                        // console.log(items[i].checked);
                        // 设置四个多选框变成选中状态
                        items[i].checked=true;
                        checkedAllBox.checked=true;
                    }
    
                };
    
    
    // ---------------------------------------全不选事件-------------------------------------------------------------
    
                // 2.checkedNoBtn
                //为id为checkedNoBtn的按钮绑定一个单击响应函数
                var checkedNoBtn=document.getElementById("checkedNoBtn");
                checkedNoBtn.onclick=function(){
                    for(var i=0;i<items.length;i++){
                        //将四个多选框设置为没选中的状态
                        items[i].checked=false;
                    }
                    // 将全选/全不选设置为不选中
                    checkedAllBox.checked=false;
                };
    
    
    // ---------------------------------------反选事件-------------------------------------------------------------
    
                // 3.checkedRevBtn
                //为id为checkedNoBtn的按钮绑定一个单击响应函数
                var checkedRevBtn = document.getElementById("checkedRevBtn");
                checkedRevBtn.onclick=function(){ 
                    checkedAllBox.checked = true;
                    for(var i=0;i<items.length;i++){
                        
                        // 将checkAllBox设置为选中状态
                       
    
                    //第一种方法:判断多选框状态
                       /*  if(items[i].checked){
                            items[i].checked=false;
                        }else{
                            // 证明多选框没选中,则设置为选中状态
                            items[i].checked=true;
                        } */
    
                    //第二种方法: 
                        items[i].checked=!items[i].checked;
                        //判断四个多选框是否全选
                        // 只要有一个没选中则就不是全选
    
                        if (!items[i].checked) {
                            checkedAllBox.checked = false;
                          
                            
                        }
                    }
    
                    // 在反选时也需要判断四个多选框是否全都选中
    
    
    
    
                };
    
    
    
    // --------------------------------------提交按钮事件-------------------------------------------------------------
    
                // 4.sendBtn
                //为id为sendBtn的按钮绑定一个单击响应函数
                var sendBtn = document.getElementById("sendBtn");
                sendBtn.onclick = function () {
                    for(var i=0;i<items.length;i++){
                        // 判断多选框是否被选中
                        if(items[i].checked){
                            console.log(items[i].value);
                            }
                        
                    }
                };
    
    // --------------------------------------全选/全不选事件----------------------------------------------------------
    
                // 5.checkedAllBox
    
                /* 全选/全不选 多选框
                    -当它选中时,其余的也选中,当它取消时其余也取消
    
                    在事件的响应函数中,响应函数是给谁绑定的this就是谁的
                 */
                //为id为checkedAllBox的按钮绑定一个单击响应函数
                var checkedAllBox = document.getElementById("checkedAllBox");
                checkedAllBox.onclick = function () {
                    
                    // console.log(this===checkedAllBox); 
    
                    // 设置多选框的选中状态
                    for (var i = 0; i < items.length; i++) {
                        items[i].checked=checkedAllBox.checked;
    
                }
                };
    
    // --------------------------------------items事件----------------------------------------------------------
    
                // 6.items
                // var checkedAllBox = document.getElementById("checkedAllBox");
                /* 
                如果四个多选框全都选中,则checkAllBox也应该选中
                如果四个多选框没豆选中,则checkAllBox也不应该选中
                 */
    
                //  为四个多选框分别绑定点击响应函数
                for(var i=0;i<items.length;i++){
                    items[i].onclick=function(){
                        //将checkedAllBox设置为选中状态
                       checkedAllBox.checked=true;
    
    
    
                    for(var j=0;j<items.length;j++){
                         //判断四个多选框是否全选
                        // 只要有一个没选中则就不是全选
    
                        if(!items[j].checked){
                            checkedAllBox.checked=false;
                            // 一旦进入判断,则已经得出接轨们不用再继续执行循环
                            break;
                        }
                    }    
                       
                    }
                }
    
            };
    
        </script>
    </head>
    <body>
        <form action="" method="post">
            你爱好的运动是?<input type="checkbox"  id="checkedAllBox"/>全选/全不选
            <br/>
            <input type="checkbox" name="items" value="足球"/>足球
            <input type="checkbox" name="items" value="篮球"/>篮球
            <input type="checkbox" name="items" value="羽毛球"/>羽毛球
            <input type="checkbox" name="items" value="排球"/>排球
            <br/>
            <input type="button" id="checkedAllBtn" value="全 选"/>
            <input type="button" id="checkedNoBtn" value="全不选"/>
            <input type="button" id="checkedRevBtn" value="反选"/>
            <input type="button" id="sendBtn" value="提交"/>
    
    
        </form>
    </body>
    </html>

    1、全选事件

    2、全不选事件

    3、反选事件

    选中足球--->单击反选按钮

    4、提交按钮事件

    5、四个多选框全选中--->全选/全不选自动选中

  • 相关阅读:
    443. String Compression
    506. Relative Ranks
    825. Friends Of Appropriate Ages
    447. Number of Boomerangs
    54. Spiral Matrix
    744. Find Smallest Letter Greater Than Target
    HDU-1565 方格取数(1)
    zoj 3672 Gao The Sequence
    ZOJ 3675 Trim the Nails
    poj -2955 Brackets
  • 原文地址:https://www.cnblogs.com/hr-7/p/14056841.html
Copyright © 2011-2022 走看看