2011-05-13 70 views
3

当我检查\取消选中复选框和单选按钮时,浏览器未检查设置属性。所以,当我试图取消选中复选框使用jQuery:取消选中由用户检查的复选框

$('#tab2 input').removeAttr('checked'); 

它不工作。它的工作情况复选框从我的JavaScript代码中检查。我如何取消选中已经由用户检查过的复选框?

+4

由于这个东西的API近期发生了变化,您应该指定是使用jQuery 1.5.x还是使用jQuery 1.6或更高版本。 – 2011-05-13 15:04:03

+0

@Jamie Wong我使用的是jQuery 1.6 – Neir0 2011-05-13 15:12:18

回答

5

你设置一个属性,所以在jQuery 1.6使用.prop()

$('#tab2 input').prop('checked',false); 

或者如果只有一个input,直接更改该元素的属性。

$('#tab2 input')[0].checked = false; 

jQuery 1.6.1被释放,或者upgrade to jQuery 1.6.1,你就可以回去使用.attr()重新设置属性,但.prop()仍然会是更好的方式来做到这一点。

从发布说明:

具体地说,布尔属性如选中,选择,只读,并且在禁用1.6.1将被视为就像他们曾经被jQuery中之前的版本1.6进行处理。这意味着,代码如

$(“:checkbox”).attr(“checked”, true); 
$(“option”).attr(“selected”, true); 
$(“input”).attr(“readonly”, true); 
$(“input”).attr(“disabled”, true); 

甚至:

if ($(“:checkbox”).attr(“checked”)) { /* Do something */ } 

将不再需要在1.6.1为了为此前预期的工作来改变。

+0

我不知道为什么,但这也不起作用 – Neir0 2011-05-13 15:26:18

+0

@ Neir0:使用'.prop()'在jQuery 1.6中适用于我。在你的问题中一定有其他问题不可见。 – RightSaidFred 2011-05-13 15:45:39

2
$('input[name=foo]').attr('checked', false); 
+0

这也行不通 – Neir0 2011-05-13 15:13:09

3
$('#tab2 input').attr('checked',false); 
+0

这也行不通 – Neir0 2011-05-13 15:12:34

相关问题