JS控制复选框选中状态

37 篇文章 8 订阅
30 篇文章 0 订阅

效果图:
在这里插入图片描述
源码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>全选练习</title>
        <script type="text/javascript">
            window.onload = function(){
                
                var items = document.getElementsByName("items");
                var checkedAllBox = document.getElementById("checkedAllBox");
                var checkedAllBtn = document.getElementById("checkedAllBtn");
                var checkedNoBtn = document.getElementById("checkedNoBtn");
                var checkedRevBtn = document.getElementById("checkedRevBtn");
                var sendBtn = document.getElementById("sendBtn");

                //检查上方复选框状态的方法
                var ch = function(){
                    if (items[0].checked && items[1].checked
                        && items[2].checked && items[3].checked){
                        checkedAllBox.checked = true;
                    }else{
                        checkedAllBox.checked = false;
                    }
                };
                
                //全选
                checkedAllBtn.onclick = function(){
                    // console.log(items);
                    for(var i=0; i<items.length; i++){
                        items[i].checked = true;
                    }
                    checkedAllBox.checked = true;
                };

                //全不选
                checkedNoBtn.onclick = function(){
                    for(var i=0; i<items.length; i++){
                        items[i].checked = false;
                    }
                    checkedAllBox.checked = false;
                };
                
                //反选
                checkedRevBtn.onclick = function(){
                    for(var i=0; i<items.length; i++){
                        items[i].checked = !items[i].checked;
                    }
                    //执行反选后,上方复选框的状态
                    ch();
                };

                //提交
                sendBtn.onclick = function(){
                    for(var i=0; i<items.length; i++){
                        if(items[i].checked){
                            alert(items[i].value);
                        }
                    }
                };
                
                //复选框全选/全不选
                checkedAllBox.onclick = function(){
                    for(var i=0; i<items.length; i++){
                        items[i].checked = this.checked;
                    }
                }

                //四个复选框的单击事件
                items[0].onclick = function(){
                    ch();
                }
                items[1].onclick = function(){
                    ch();
                }
                items[2].onclick = function(){
                    ch();
                }
                items[3].onclick = function(){
                    ch();
                }
            };
        </script>
    </head>
    <body>
        <form method="psot" action="">
            你爱好的运动是?<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" value="全  选" id="checkedAllBtn">
            <input type="button" value="全不选" id="checkedNoBtn">
            <input type="button" value="反  选" id="checkedRevBtn">
            <input type="button" value="提  交" id="sendBtn">
        </form>
    </body>
</html>

注:B站尚硅谷李立超老师的教程中有该练习,如有疑问可去参考视频(https://www.bilibili.com/video/BV1YW411T7GX?p=98)

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值