チェックボックス3つを親子孫の関係にしたいです。
直近の上位者(aaa)がアクティブ時には下位者(bbb)がアクティブになる関係を目指しています。
直近の上位者(bbb)がアクティブにならないとcccがアクティブになれない関係です。
aaa,bbbをチェック済み、cccにチェック無しの時に親(aaa)からチェックを外すと
孫(ccc)がアクティブになってしまいます。
親(aaa)がチェック無しの場合は、子(bbb)も孫(ccc)も非アクティブになり押せなくしたいのですが、
どうすればよいでしょうか。
html
1<fieldset> 2 <div> 3 <ul class="select--area parent--01"> 4 <li class="select--area--sub"> 5 <span> 6 <input type="hidden" name="aaa" value="0"> 7 <input type="checkbox" name="aaa" value="1" id="aaa" checked="checked"> 8 <label for="aaa"> 9 <span>aaa</span> 10 </label> 11 </span> 12 <ul class="outer--01 select--area"> 13 <li class="select--area--sub"> 14 <span class="nest--01"> 15 <input type="hidden" name="bbb" value="0"> 16 <input type="checkbox" name="bbb" value="1" id="bbb"> 17 <label for="bbb"> 18 <span>bbb</span> 19 </label> 20 </span> 21 <ul> 22 <li class="select--area--sub"> 23 <span class="inner--01"> 24 <input type="hidden" name="ccc" value="0"> 25 <input type="checkbox" name="ccc" value="1" id="ccc" class="checkSet"> 26 <label for="ccc" class="text-checkbox"> 27 <span>cccc</span> 28 </label> 29 </span> 30 </li> 31 </ul> 32 </li> 33 </ul> 34 </li> 35 </ul> 36 </div> 37</fieldset>
jquery
1$(function(){ 2 $('ul[class*="parent--"] > li.select--area--sub > span > input').on('change', function () { 3 var flg=$(this).prop('checked'); 4 $(this).closest('.select--area') 5 .find('span[class*="nest--"]').toggleClass('active',flg) 6 .find('>input').prop('disabled', !flg); 7 8 $('ul>li>span[class*="nest--"]').find('span[class*="inner--"]').toggleClass('active',flg) 9 .find('>input').prop('disabled', !flg); 10 }).trigger('change'); 11}); 12 13$(function(){ 14 $('ul[class*="outer--"] > li.select--area--sub > span > input').on('change', function () { 15 var flg=$(this).prop('checked'); 16 $(this).closest('.select--area') 17 .find('span[class*="inner--"]').toggleClass('active',flg) 18 .find('>input').prop('disabled', !flg); 19 }).trigger('change'); 20});
回答1件
あなたの回答
tips
プレビュー