當我檢查\取消選中複選框和單選按鈕時,瀏覽器未檢查設置屬性。所以,當我試圖取消選中複選框使用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