前提・実現したいこと
以下の<初期状態>において、「選択1」~「選択3」いずれかのチェックを外した
場合に、「全て」のチェックが外れるようにしたい。
<初期状態> ☑全て | ☑選択1 ☑選択2 ☑選択3
発生している問題・エラーメッセージ
「選択1」のチェック外しでは「全て」のチェックが外れますが、「選択2」・「選択3」では、「全て」のチェックが外れません。
<設定1:選択1外し> ☐全て | ☐選択1 ☑選択2 ☑選択3
・ ↑OK
<設定2:選択2外し> ☑全て | ☑選択1 ☐選択2 ☑選択3
・ ↑NG
<設定3:選択3外し> ☑全て | ☑選択1 ☑選択2 ☐選択3
・ ↑NG
該当のソースコード
<body> <div class="box"><span> </span> <input type='checkbox' name='rooms' value=0 class='all' checked='checked' />全て | <input type='checkbox' name='rooms' value=1 class='ind' checked='checked' />選択1 <input type='checkbox' name='rooms' value=2 class='ind' checked='checked' />選択2 <input type='checkbox' name='rooms' value=2 class='ind' checked='checked' />選択3 </div> <script> $(function() { $('.all').on('click', function() { $("input[name='rooms']").prop('checked', this.checked); }); $("input[name='rooms']").on('click', function() { if ($('.box: checked').length == $('.box: input').length) { $('.all').prop('checked', true);} else {$('.all').prop('checked', false);} }); }); $(function() { $("input[name='rooms']").change(function() { var prop = $('.ind').prop('checked'); if (!prop) {$('.all').prop('checked', false);} }); }); </script> </body>試したこと
最初、選択肢の<input>タグ内で「id="ind"」、<script>~</script>内で「'#ind'」と記述していました。これが原因と思い、それぞれ「class="ind"」、「'.ind'」と変更してみましたが、改善に至っていません。
補足情報(FW/ツールのバージョンなど)
回答4件
あなたの回答
tips
プレビュー