zoukankan      html  css  js  c++  java
  • 转:treeview checkbox js 无限极级联选择 方案

    代码
       <script type="text/javascript">

            
    function OnTreeNodeChecked() {
                
    var ele = event.srcElement;
                
    if (ele.type == 'checkbox') {
                    
    var childrenDivID = ele.id.replace('CheckBox''Nodes');
                    
    var div = document.getElementById(childrenDivID);
                    
    if (div != null) {
                        
    var checkBoxs = div.getElementsByTagName('INPUT');
                        
    for (var i = 0; i < checkBoxs.length; i++) {
                            
    if (checkBoxs[i].type == 'checkbox')
                                checkBoxs[i].checked 
    = ele.checked;
                        }
                        
    var div = GetParentByTagName(ele, 'DIV');
                        
    var checkBoxs = div.getElementsByTagName('INPUT');
                        
    var parentCheckBoxID = div.id.replace('Nodes''CheckBox');
                        
    var parentCheckBox = document.getElementById(parentCheckBoxID);
                        
    for (var i = 0; i < checkBoxs.length; i++) {
                            
    if (checkBoxs[i].type == 'checkbox' && checkBoxs[i].checked) {
                                parentCheckBox.checked 
    = true;
                                
    return;
                            }
                        }
                        parentCheckBox.checked 
    = false;
                    }
                    
    else {
                        
    var div = GetParentByTagName(ele, 'DIV');
                        
    var checkBoxs = div.getElementsByTagName('INPUT');
                        
    var parentCheckBoxID = div.id.replace('Nodes''CheckBox');
                        
    var parentCheckBox = document.getElementById(parentCheckBoxID);

                        
    var basediv = GetParentByTagName(parentCheckBox, 'DIV');
                        
    var parentCBKs = basediv.getElementsByTagName('INPUT');
                        
    var baseCheckBoxID = basediv.id.replace('Nodes''CheckBox');
                        
    var baseCheckBox = document.getElementById(baseCheckBoxID);

                        
    for (var i = 0; i < checkBoxs.length; i++) {
                            
    if (checkBoxs[i].type == 'checkbox' && checkBoxs[i].checked) {
                                parentCheckBox.checked 
    = true;
                                
    for (var j = 0; j < parentCBKs.length; j++) {
                                    
    if (parentCBKs[j].type == 'checkbox' && parentCBKs[j].checked) {
                                        baseCheckBox.checked 
    = true;
                                    }
                                }
                                
    return;
                            }
                        }
                        parentCheckBox.checked 
    = false;
                        
    var checkedcount = 0;
                        
    for (var j = 0; j < parentCBKs.length; j++) {
                            
    if (parentCBKs[j].type == 'checkbox' && parentCBKs[j].checked) {
                                checkedcount
    ++;
                            }
                        }
                        
    if (checkedcount == 0) {
                            baseCheckBox.checked 
    = false;
                        }
                    }

                }
            }

            
    function GetParentByTagName(element, tagName) {
                
    var parent = element.parentNode;
                
    var upperTagName = tagName.toUpperCase();
                
    while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
                    parent 
    = parent.parentNode ? parent.parentNode : parent.parentElement;
                }
                
    return parent;
            } 
        
    </script>
  • 相关阅读:
    [C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例
    玩转Asp.net MVC 的八个扩展点
    float实例讲解
    C#高性能TCP服务的多种实现方式
    如何把SQLServer数据库从高版本降级到低版本?
    ASP.NET MVC Area使用-将Area设置成独立项目
    如何使用ping和tracert命令测试网站访问速度
    ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)
    MVC Action Filter
    c#中单元测试
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1957607.html
Copyright © 2011-2022 走看看