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>
  • 相关阅读:
    如何“破解”系统分析员考试
    两道简单的入门题
    WPF调用OCX控件
    www.12306.cn是安抚群众心灵的吧?
    FileStream类操作字节和字节数组
    XML基本操作:创建增删改
    asp.net ajax回调函数
    XMLHttpRequest+WebForm模式(接口IHttpHandler)实现ajax
    文件读写操作
    asp.net 中AJAX回调模式(ICallbackEventHandler)
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1957607.html
Copyright © 2011-2022 走看看