我是JQuery的新手,努力解決一個問題,當我試圖禁用一個複選框時,一個主複選框被選中。使用JQuery啓用/禁用複選框單擊複選框使用JQuery
我有一個表單,其中包含1個主複選框和3個輔助複選框。當選中主複選框時,所有其他輔助複選框都被禁用,但默認情況下必須具有經過檢查的狀態。當主複選框未被選中時,被禁用的所有其他輔助複選框將變爲啓用狀態,並且必須全部檢查。默認情況下,當用戶到達表單時:必須檢查主複選框,因此必須檢查和禁用其他3個複選框。
這是我的代碼:
<s:checkbox id="primary_CB" name="primaryCB" value="true"/>Primary checkbox
<s:checkbox cssClass="secondary_CB" name="secondary_CB1"/>Secondary checkbox1
<s:checkbox cssClass="secondary_CB" name="secondary_CB2"/>Secondary checkbox2
<s:checkbox cssClass="secondary_CB" name="secondary_CB3"/>Secondary checkbox3
我jQuery代碼:
$('#primary_CB').click(function() {
if ($(this).attr('checked')) {
$(".secondary_CB").attr('disabled', 'disabled');
} else {
$(".secondary_CB").removeAttr('disabled');
}
});
但是我的代碼工作在陌生的路上,當我的形式首次上,所有4個複選框被檢查,沒有被禁用。只有當我取消選中/再次檢查禁用功能發生的主複選框時。此外,再次禁用所有輔助複選框時會自動取消選中。
任何人都可以請幫忙嗎?
或者你可以擺脫if/else,只是做'$(「input.secondary_CB」)。prop(「disabled」,!this.checked);' –
@wirey哦,惡魔你。當然,有時候你會盡量快速回復:)更新並感謝您的建議。 – sQVe
剛剛嘗試過,但它看起來像使用prop()方法有問題。我正在使用jquery-1.3.2。 – user1353307