2015-10-08 4 views
0

Как сделать родительский узел в дереве проверен, проверен ли только один из его дочерних узлов, а не отмечен, если все дочерние узлы также не отмечены.Как сделать родительский узел в дереве проверен, проверен ли только один из его дочерних узлов, и не отмечен, если все дочерние узлы тоже не отмечены

Я использую этот скрипт

<script type="text/javascript"> 
    $(function() { 

     $(".MyTreeView").find(":checkbox").change(function() { 
      //check or uncheck childs 
      var nextele = $(this).closest("table").next()[0]; 
      if (nextele&&nextele.tagName == "DIV") 
      { 
       $(nextele).find(":checkbox").prop("checked", $(this).prop("checked")); 

      } 
      //check nodes all with the recursive method 
      CheckChildNodes($(".MyTreeView").find(":checkbox").first()); 

     }); 
     //method check filial nodes 
     function CheckChildNodes(Parentnode) 
     { 

      var nextele = $(Parentnode).closest("table").next()[0]; 

      if (nextele && nextele.tagName == "DIV") { 
       $(nextele).find(":checkbox").each(function() { 
        CheckChildNodes($(this)); 
       }); 

       if ($(nextele).find("input:checked").length == 0) { 
        $(Parentnode).removeAttr("checked"); 
       } 
       if ($(nextele).find("input:checked").length > 0) { 
        $(Parentnode).prop("checked", "checked"); 
       } 

      } 
      else { return; } 

     } 

    }) 
    </script> 

, но он работает только для первого узла, я хочу, чтобы применить его для всех остальных узлов. это ссылка на мою страницу тестирования http://72.41.52.131/erp/Default4.aspx

+0

Это некоторые очень неприятный HTML, вы можете изменить Это? Этот скрипт может быть намного проще, если у вас будет хорошая структура с некоторой логикой. – halfzebra

+0

Я использую treeview управления asp.net, и я попробовал jquery по этой ссылке: http: //forums.asp.net/t/1984928.aspx? Treeview + checked + и + unchecked + using + Jquery –

ответ