这是代码:
$('#checkBoxContact1').click(function(e) {
e.preventDefault();
if ($('#chbBox1').attr('checked') == true)
$('#chbBox1').attr('checked', 'false');
else $('#chbBox1').attr('checked', 'true');
});
点击链接时我会这样说。但实际上似乎它不起作用......
也许我应该使用:check?
答案 0 :(得分:5)
使用.prop()
,更重要的是,不引用布尔值。
对于布尔属性,纯粹的存在很重要。 checked=""
,checked="no"
,checked="false"
都会导致元素被检查。
要通过属性取消检查元素,您必须使用.removeAttr('checked')
。
但是,您可以使用属性,它是一个实际的布尔值。所以.prop('checked', true_or_false)
会做你想要的。实际上你甚至可以使用.attr('checked', true_of_false)
,因为jQuery 1.6.1但使用.prop()
代替.attr()
要快一点,因为它不需要检查它是否实际上是你想要的属性设置而不是属性。
答案 1 :(得分:0)
试试这样:
1. $('#chbBox1').attr('checked', ''); // for false
2. $('#chbBox1').attr('checked', 'checked'); //for true
upto jQuery-1.5.2#1正在运行。
在jQuery-1.6中它的表现如实。