2016-08-30 29 views
2
<div class="col-lg-3 col-xs-3 col-left"> 
      <h4>Topics</h4> 
      <div class="checkbox"> 
       <label> 
        <input type="checkbox" value="1" checked> mCRC 
       </label> 
      </div> 
      <div class="checkbox ml10"> 
       <label> 
        <input type="checkbox" value="2" data-parent="1" id="stivarga-efficacy" checked> STIVARGA Efficacy 
       </label> 
      </div> 
      <div class="checkbox ml20"> 
       <label> 
        <input type="checkbox" value="3" data-parent="1,2" id="long-term" checked> Long-Term Responders 
       </label> 
      </div> 
      <div class="checkbox ml20"> 
       <label> 
        <input type="checkbox" value="4" data-parent="1,2" id="stivarga-in-clinical" checked> STIVARGA in Clinical Practice 
       </label> 
      </div> 
      <div class="checkbox ml10"> 
       <label> 
        <input type="checkbox" value="5" data-parent="1" checked> STIVARGA AE Management 
       </label> 
      </div> 
      <div class="checkbox ml10"> 
       <label> 
        <input type="checkbox" value="6" data-parent="1" checked> Dosing 
       </label> 
      </div> 
      <div class="checkbox ml10"> 
       <label> 
        <input type="checkbox" value="7" data-parent="1" checked> Patient Communication 
       </label> 
      </div> 
      <div class="checkbox ml10"> 
       <label> 
        <input type="checkbox" value="8" data-parent="1" checked> Case Studies 
       </label> 
      </div> 

      <div class="checkbox"> 
       <label> 
        <input type="checkbox" value="9" checked> GIST 
       </label> 
      </div> 

     </div> 

page.Iにいくつかのチェックボックスがあります必要があります。親子孫のチェックボックス

  1. を親がチェックされている場合は、すべてのチャイルズを確認してください。
  2. すべての子がチェックされていない場合は、親のチェックを外します。
  3. 少なくとも1人の子供がチェックされているかどうかを確認します。

どのようにすればいいですか?私はここで解決Parent and child checkboxes それを見つけ、私はhttp://codepen.io/Assert/pen/mAbVAE

+0

*「私はcodepen孫機能

で問題を抱えていますグランドチャレンジに問題があるild機能 "* - その問題の性質は...? – nnnnnn

答えて

2

$('#treeList :checkbox').change(function(){ 
 
    $(this).siblings('ul').find(':checkbox').prop('checked', this.checked); 
 
    if (this.checked) { 
 
     $(this).parentsUntil('#treeList', 'ul').siblings(':checkbox').prop('checked', true); 
 
    } else { 
 
     $(this).parentsUntil('#treeList', 'ul').each(function(){ 
 
      var $this = $(this); 
 
      var childSelected = $this.find(':checkbox:checked').length; 
 
      if (!childSelected) { 
 
       $this.prev(':checkbox').prop('checked', false); 
 
      } 
 
     }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<ul id="treeList"> 
 
    <li> 
 
    <input type="checkbox" name="selectedRole"> 
 
    Application Manager 
 
    <ul> 
 
     <li> 
 
      <input type="checkbox" name="selectedRole"> 
 
      Application Manager Panel 
 
     </li> 
 
     <li> 
 
      <input type="checkbox" name="selectedRole"> 
 
      Client Role 
 
      <ul> 
 
       <li> 
 
        <input type="checkbox" name="selectedRole"> 
 
        Client Task 1 
 
       </li> 
 
       <li> 
 
        <input type="checkbox" name="selectedRole"> 
 
        Client Task 2 
 
       </li> 
 
        
 
       </ul> 
 
       </li> 
 
      
 
      <li> 
 
      <input type="checkbox" name="selectedRole"> 
 
      Client Role 
 
      <ul> 
 
       <li> 
 
        <input type="checkbox" name="selectedRole"> 
 
        Client Task 1 
 
       </li> 
 
       <li> 
 
        <input type="checkbox" name="selectedRole"> 
 
        Client Task 2 
 
       </li> 
 
        
 
       
 
      </ul> 
 
     </li> 
 

 
</ul>

Example 1 :

Referance Site :

+0

しかし、これは質問にあるものとはまったく異なるHTML構造で動作します。 OPのコードでは、親/子/孫の関係はチェックボックスの 'value'属性と' data-parent'属性で記述されているようです。 – nnnnnn

+0

ありがとう、私は自分のHTML構造を管理することができます。 @nnnnnn –