jQuery按钮检查所有复选框问题

时间:2011-05-11 16:04:11

标签: javascript jquery checkbox

我有一个按钮,用于检查div中的所有复选框并取消选中。

但是,如果我要手动选中一个复选框,然后点击全部检查按钮,然后取消选中全部,则手动选中的复选框不会被取消选中!

有什么想法吗?

http://jsfiddle.net/hM5bu/1/

2 个答案:

答案 0 :(得分:6)

那是因为jQuery在1.6中被改变了

使用attr代替prop就是打破它。

尝试使用prop代替

更新了小提琴:http://jsfiddle.net/hM5bu/2/

有关jQuery 1.6中propattr的更多信息,请参阅此问题:.prop() vs .attr()

答案 1 :(得分:-1)

这是一个解决方案:

<input type="checkbox" name="todos" id="todos" /> All<br/>
<input class="marcartodos" type="checkbox" name="marcado[]" value="1" />1<br/>
<input class="marcartodos" type="checkbox" name="marcado[]" value="2" />2<br/>
<input class="marcartodos" type="checkbox" name="marcado[]" value="3" />3<br/>
<input class="marcartodos" type="checkbox" name="marcado[]" value="4" />4<br/>

<script type="text/javascript">

$(function() {

$("#todos").click(function() {                          
if ($(this).is(':checked'))                         
$(".marcartodos").attr('checked', true);
else 
$(".marcartodos").attr('checked', false);
});

});

</script>