【发布时间】:2013-04-20 12:41:51
【问题描述】:
这里是 jsfiddle http://jsfiddle.net/6mk7m/9/
我在 stackoverflow 上发现我需要创建 jsfiddle 帐户,这样我就可以向你们展示代码以便于阅读,(抱歉)如果我的英语不太好,
我目前正在学习jQuery,我不是专家,只是一个“初学者”,无论如何,
我做了一个复选框,我给了它一个 id = all
<input type="checkbox" id="all" /><span style='color:red'>All</span>
我想要的是,当我点击这个带有这个特定 id = all 的复选框时,我想选中下面列出的这 3 个复选框
<input type="checkbox" name="us[]" value="google" />Google
<input type="checkbox" name="us[]" value="youtube" />Youtube
<input type="checkbox" name="us[]" value="friend" />Friend<br/><br/>
所以这是我想出来的代码,
<script type="text/javascript">
$("document").ready(function() {
$("input[id='all']").bind('click',function(){
var all = $(this);
console.log('status: ' + all.prop('checked'));
if(all.prop('checked') == true)
{
//alert('now its true');
$("input:checkbox").attr("checked","checked");
}
else if (all.prop('checked') == false){
$("input:checkbox").removeAttr("checked");
}
})
})
</script>
当我点击 id = all 的复选框时(它会选择所有复选框)
现在当我第二次点击 id = all 的复选框时(它未选中所有复选框)
到现在为止,一切都很好
现在问题是当我第三次点击 id = all 的复选框时
( 它不检查任何复选框 ) 但是,当我检查控制台时,我看到所有属性都等于已选中 - 但我没有看到它们在浏览器上选中的复选框我的意思是它们在中间没有这个 tick 标记的复选框每个盒子, 可能代码有问题,我就是想不通为什么当我想点击超过 3 次时它不起作用。
【问题讨论】:
-
不要使用
attr,使用prop。要检查,请致电$('input:checkbox').prop('checked', true);,要取消检查,请将true更改为false -
更正了你的 jsFiddle;你忘了在外部资源中包含 jQuery。
-
谢谢安东,我会试试的...
-
@user2237771,我更正了我的评论。对不起,我第一次错了。
-
安东我刚刚做了同样的事情,
标签: jquery