Checkbox 的 checked 属性为 false 了,但是还是显示打钩怎么办?

0 0 javascript jquery
♪ 柠乐↘
♪ 柠乐↘

声望值:78 0人

2018-08-09 15:43:12 提问

关注 0关注

收藏 0收藏, 337浏览

有多个 checkbox 只能选择一个 当有两个都被勾选,最后选的会让之前选的被取消打钩 我用下面的方法

    $(':checkbox[type="checkbox"]').each(function(){
        $(this).click(function(){
            if($(this).prop('checked')){
                $(':checkbox[type="checkbox"]').removeAttr('checked');
                $(this).prop('checked','true');
            }
        });
    });

可是调试发现 前面的勾选依然显示打钩,虽然他们的属性 checked 为 false 了 怎么回事?

之前用的是

$(':checkbox[type="checkbox"]'). .prop('checked', false);

这个不仅显示没有取消打钩
连属性 checked 都继续为 true

请先 登录 后评论

4个回答

  • 背着98K的男人306声望 2018-08-08 11:44

    在html中checkbox标签只要有checked属性都会被选中,这里的checked是attribute,建议你单选用radio
    请先 登录 后评论
  • Y_F_Timo130声望 2018-08-08 11:44

    prop里false和true不要加引号,你这种是用radio的情形吧。你应该在当前元素change时让其兄弟元素全部checked变为false,当前的不要变 $('input[type="checkbox"]').each(function(){ $(this).change(function(){ $(this).siblings().prop('checked',false); }) });
    请先 登录 后评论
  • の酒度微笑69声望 2018-08-08 11:44

    $('input[type="checkbox"]').each(function(){ $(this).click(function(e){ $('input[type="checkbox"]').prop('checked',false); $(this).prop('checked',true); }); });
    请先 登录 后评论
  • 汉有游女,不可求思。121声望 2018-08-08 11:44

    疑问: 只能选择一个 为什么不用单选? <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title> </title> </head> <body> <div id="jie"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> </div> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script> //不需要什么each的 $('input[type="checkbox"]').on('change',function() { $('input[type="checkbox"]').prop('checked',false); $(this).prop('checked',true); }); </script> </body> </html>
    请先 登录 后评论

注册新账号

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问