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

2017-12-13 18:57:22 +08:00
 esolve

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

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

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

1937 次点击
所在节点    问与答
4 条回复
esolve
2017-12-13 23:14:46 +08:00
顶顶顶
Fishdrowned
2017-12-13 23:33:17 +08:00
前面是 $(this).prop('checked'),后面是 .removeAttr('checked'),少年你的内心很矛盾啊。

把 .removeAttr('checked') 改成 .prop('checked', false);
esolve
2017-12-14 09:59:48 +08:00
@Fishdrowned 试过,没用,效果一样的啊,
esolve
2017-12-14 10:38:48 +08:00
@Fishdrowned 说错了,

我之前用的是

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/414480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX