解決したいことは、クラス名が3種類あるブロック内にcheckboxを置いてるのですが、
最初に、チェックを入れたブロックのみに強制したく、他ブロックはdisabledにしたいのですが、
記述の順番を入れ替えたときに、1つのパターンのときだけ、正常に機能しません。
以下の記述の場合は、【.staff-check】へチェックを入れたときに、【.style-check2】へはdisabledが付与されますが、
【.style-check1】はdisabledが付与されません。
ご教授いただけますでしょうか。
<form> <div class="p-search__elem"> <fieldset class="p-search__elem-item"> <legend class="p-search__elem-item-title">おとなの音楽教室で探す</legend> <ul class="style-box1" style="display: none;"> <li class="disabled"> <input type="checkbox" id="senior-63" class="style-check1" name="search_cat1[]" value="63" disabled=""> <label class="p-search-list__item-label" for="senior-63">トランペット</label> </li> <li class="disabled"> <input type="checkbox" id="senior-64" class="style-check1" name="search_cat1[]" value="64" disabled=""> <label class="p-search-list__item-label" for="senior-64">ピアノ</label> </li> </ul> </fieldset> <fieldset class="p-search__elem-item"> <legend class="p-search__elem-item-title">こどもの音楽教室で探す</legend> <ul class="style-box2" style="display: none;"> <li> <input type="checkbox" id="kids-16" class="style-check2" name="search_cat2[]" value="16"> <label class="p-search-list__item-label" for="kids-16">チューバ</label> </li> <li> <input type="checkbox" id="kids-18" class="style-check2" name="search_cat2[]" value="18"> <label class="p-search-list__item-label" for="kids-18">トランペット</label> </li> </ul> </fieldset> <fieldset class="p-search__elem-item"> <legend class="p-search__elem-item-title">講師紹介で探す</legend> <ul class="staff-box" style="display: none;"> <li> <input type="checkbox" id="staff-25" class="staff-check" name="search_staff[]" value="25" disabled=""> <label class="p-search-list__item-label" for="staff-25">小倉恵理</label> </li> <li> <input type="checkbox" id="staff-386" class="staff-check" name="search_staff[]" value="386" disabled=""> <label class="p-search-list__item-label" for="staff-386">三浦コウ</label> </li> </ul> </fieldset> </div> <input id="js-search__submit" class="p-search__submit p-btn" type="submit" value="検索する"> <input id="js-search__reset" class="p-search__reset p-btn" type="reset" value="リセット"> </form>
$('input').on('change', function() { /* おとな */ if ($('.style-check1').is(':checked')) { $('.staff-check,.style-check2').prop('disabled', true); $('.staff-check,.style-check2').prop('checked', false); $('.staff-check,.style-check2').parent().addClass('disabled'); } else { $('.staff-check,.style-check2').prop('disabled', false); $('.staff-check,.style-check2').parent().removeClass('disabled'); } /* 講師 */ if ($('.staff-check').is(':checked')) { $('.style-check1,.style-check2').prop('disabled', true); $('.style-check1,.style-check2').prop('checked', false); $('.style-check1,.style-check2').parent().addClass('disabled'); } else { $('.style-check1,.style-check2').prop('disabled', false); $('.style-check1,.style-check2').parent().removeClass('disabled'); } /* こども */ if ($('.style-check2').is(':checked')) { $('.staff-check,.style-check1').prop('disabled', true); $('.staff-check,.style-check1').prop('checked', false); $('.staff-check,.style-check1').parent().addClass('disabled'); } else { $('.staff-check,.style-check1').prop('disabled', false); $('.staff-check,.style-check1').parent().removeClass('disabled'); } });
回答2件
あなたの回答
tips
プレビュー