js基础-全选练习

这是一个使用JavaScript编写的网页,实现了全选、全不选、反选和提交功能。当用户点击全选按钮时,所有选项被选中;全不选则取消所有选项的选择;反选会反转当前选中状态;提交按钮则显示已选中的选项值。此外,全选/全不选按钮的状态会根据选项选择情况自动更新,并且如果所有选项未全选,全选/全不选按钮不会被选中。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>全选练习</title>
    <script>
        
        window.onload = function(){

            var cab = document.getElementById("CheckedAllBox");
            var items = document.getElementsByName("items");


            //1.功能描述,点击全选后,四项运动全部选中
            var all = document.getElementById("All");
            all.onclick = function(){
                // 获取四项运动多选框
                var items = document.getElementsByName("items");
                for(var i=0; i<items.length; i++){
                    //全选中
                    items[i].checked = true;
                }
                cab.checked = true;
            };

            // 2.全不选中
            var allNo = document.getElementById("No");
            allNo.onclick = function(){
                var items = document.getElementsByName("items");
                for(var i=0; i<items.length; i++){
                    items[i].checked = false;
                }
                cab.checked = false;
            };


            // 3.点击反选按钮,选中的变成没选的,没选的变成选的
            var rev = document.getElementById("Rev");
            rev.onclick = function(){
                cab.checked = true;
                var items = document.getElementsByName("items");
                for(var i=0; i<items.length; i++){
                    /*if(items[i].checked){
                        items[i].checked = false;
                    }else{
                        items[i].checked = true;
                    }*/
                    items[i].checked = !items[i].checked;
                    if(!items[i].checked){
                        cab.checked = false;
                    }
                }

            };

            //4.提交,弹出value属性值
            var sub = document.getElementById("Submit");
            sub.onclick = function(){
                var items = document.getElementsByName("items");
                for(var i=0; i<items.length; i++){
                    if(items[i].checked){
                        alert(items[i].value);
                    }
                    
                }

            };

            //5.点击全选/全不选框,四个选项框出现想要的结果
            var cab = document.getElementById("CheckedAllBox");
            cab.onclick = function(){
                var items = document.getElementsByName("items");
                // alert(this == cab);true
                for(var i=0; i<items.length; i++){
                    items[i].checked = this.checked;
                    
                }
            };

            //6.如果四个全选框没有全选中,那么全选/全不选框 也不能是选中状态
            // 1.给四个多选框绑定单击响应函数
            var items = document.getElementsByName("items");
            for(var i=0; i<items.length; i++){
                items[i].onclick = function(){
                    cab.checked = true;
                    for(var j=0; j<items.length; j++){
                        if(!items[j].checked){
                            cab.checked = false;
                            break;
                        }
                    }
                };
            }

        };
        

    </script>
</head>
<body>
    <form action="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="All" value="全 选">
        <input type="button" id="No" value="全不选">
        <input type="button" id="Rev" value="反 选">
        <input type="button" id="Submit" value="提交">
        
    </form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值