当我检查\取消选中复选框和单选按钮时,浏览器未检查设置属性。所以,当我试图取消选中复选框使用jQuery:取消选中由用户检查的复选框
$('#tab2 input').removeAttr('checked');
它不工作。它的工作情况复选框从我的JavaScript代码中检查。我如何取消选中已经由用户检查过的复选框?
当我检查\取消选中复选框和单选按钮时,浏览器未检查设置属性。所以,当我试图取消选中复选框使用jQuery:取消选中由用户检查的复选框
$('#tab2 input').removeAttr('checked');
它不工作。它的工作情况复选框从我的JavaScript代码中检查。我如何取消选中已经由用户检查过的复选框?
你设置一个属性,所以在jQuery 1.6
使用.prop()
。
$('#tab2 input').prop('checked',false);
或者如果只有一个input
,直接更改该元素的属性。
$('#tab2 input')[0].checked = false;
当或者upgrade to jQuery 1.6.1
被释放,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为了为此前预期的工作来改变。
我不知道为什么,但这也不起作用 – Neir0 2011-05-13 15:26:18
@ Neir0:使用'.prop()'在jQuery 1.6中适用于我。在你的问题中一定有其他问题不可见。 – RightSaidFred 2011-05-13 15:45:39
由于这个东西的API近期发生了变化,您应该指定是使用jQuery 1.5.x还是使用jQuery 1.6或更高版本。 – 2011-05-13 15:04:03
@Jamie Wong我使用的是jQuery 1.6 – Neir0 2011-05-13 15:12:18