ZPY博客

jquery checkbox设置attr(“checked”,false)不起作用

今天在项目中遇到jquery中设置checkbox不勾中不起作用。以下两种写法都不行。

$(".checkbox__button").attr("checked",false);
$(".checkbox__button").prop("checked",false);

后来用google浏览器的F12对比checkbox勾中和不勾中时的状态发现,不管勾中还是没勾中,checkbox元素的checked属性均未发生变化。变化的只有父节点的css。

这时我马上意识到此checkbox勾中和不勾中的效果是CSS控制的,好了,这下问题就简单了,只要把相应的css去掉即可达到不勾中的效果。

$(".checkbox__button").prop("checked",false);
$(".checkbox__button").parent().removeClass('checkbox--checked');
$(".checkbox__button").parent().removeClass('checkbox__button--focus');