复选框实现单选、全选、全不选、以及给复选框中全选框设置Jquery事件

效果图:

HTML核心代码:

<body>
    <form action="">
        你的爱好是
        <input name="all" type="checkbox" />全选
        <br/>
        <input name="item" type="checkbox" value="打球"/>打球
        <br/>
        <input name="item" type="checkbox" value="打游戏"/>打游戏
        <br/>
        <input name="item" type="checkbox" value="编程"/>编程
        <br/>
        <button id="allBtn" type="button" value="全选">全选</button>
        <button id="revertBtn" type="button"  value="全选">反选</button>
        <button id="noneBtn" type="button"  value="全选">全不选</button>
    </form>
</body>

JQuary具体要去如下:

  1.  点击"全选"button 可以选中所有爱好,并且选中”全选“checbox;
  2. 点击“反选”按钮button可以将当前选择爱好进行反选;
  3. 点击“全不选”button 可以取消选中的所有爱好;
  4. 点击“全选”checkbox 可以选中所有爱好;
  5. “全选”checkbox 可以自动监听所有爱好的选中情况,如果爱好全部选中,则自动选中“全选”checkbox ,若没有全部选中,自动取消“全选”checkbox(重点及难点)

JQuery代码如下:

<script>  
    $(function(){
        // 点击”全选”button 可以选中所有爱好, 并且选中”全选”checkbox。
            $("#allBtn").click(function(){
            $("input[name=item]").prop("checked",true)
            $("input[name=all]").prop("checked",true)           
        });
        // 点击”全不选”button 可以取消选中所有的爱好。
        $("#noneBtn").click(function(){
            $("input[name=item]").prop("checked",false)
            $("input[name=all]").prop("checked",false)           
        });
        // 点击”反选”button 可以将当前选中的爱好反选
        $("#revertBtn").click(function(){
            $("input[name=item]").each(function () {
                $(this).prop("checked",!$(this).prop("checked"))   
            });
            update(); //监听事件调用
        });       
        // 点击”全选”checkbox 可以选中所有的爱好
        $("input[name=all]").click(function(){
            $("input[name=item]").prop("checked",true)
            update(); //监听事件调用
        })
        $("input[name=item]").change(function(){
            update(); //监听事件调用
        })
        // 监听并给给全选添加方法以供调用
        function update(){
            
        if ($("input[name=item]:checked").length === $("input[name=item]").length) {
            $("input[name=all]").prop('checked', true);
        } else {
            $("input[name=all]").prop('checked', false);
        }
        }
    });

</script>

别忘记引用Jquery

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

以上的难点在于不仅要为“全选”框checkbox添加监听事件,也要监听每个爱好的被选中状态,来改变“全选”框checkbox的选中状态,”反选“ 按钮也要监听。因为要反复监听调用,我将监听事件设计成一个事件方法,以供调用

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pricking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值