私はJQueryを初めて使用し、1つのメインチェックボックスがオンになっているときに複数のチェックボックスを無効にしようとしている問題を修正するのに苦労しています。
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つのチェックボックスがすべてオンになっており、無効になっているものはありません。無効化機能が実行される主要なチェックボックスをオフ/チェックし直した場合のみ。また、再度無効にすると、すべてのセカンダリチェックボックスが自動的にオフになります。
誰か助けてもらえますか?