<label for="checkbox2" id="label1">
click <input type="checkbox" id="checkbox1">
</label>
<input type="checkbox" disabled="true" id="checkbox2"/>
$(document).ready(function(){
$('#checkbox1').click(function(event) {
$('#checkbox2').prop('disabled', !this.checked);
});
});
ページには 2 つのチェックボックスがあります。(#checkbox1, #checkbox2)
#checkbox1 は label タグにあり、#checkbox2 はありません。
#checkbox1 に応じて #checkbox2 を有効/無効にしたい。
- #checkbox1 をチェック -> #checkbox2 を有効化
- チェックされていない #checkbox1 -> #checkbox2 を無効にする
#checkbox1 にチェックを入れると #checkbox2 がちゃんと有効になっています。
ただし、#checkbox2 は Firefox でのみ同時にチェックされます。(IEとChromeは違います)
問題はイベントの順序に関連していると思います。しかし、正確にはわかりません。
編集:
- #checkbox2 のみを有効にした後、ステータスを変更したい。
- #checkbox2 が有効なときに #label1 のイベントを保持したい。(Chrome や IE など)
- Chrome と Firefox の両方でDEMOをテストしてください。