• 转: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>
  • 相关阅读:
    forms组件、cookie与session
    choices参数、MTV与MVC模型、Ajax、序列化组件、sweetalert搭建页面、自定义分页器
    Django 常用字段,数据库查询优化 only与defer
    django配置代码
    django 模板层、模型层
    Django 请求生命周期、路由层
    centos6.8安装httpd后无法访问
    初次认识dedecms和帝国cms内容管理系统
    遇到一个json解码失败的问题
    关于apache配置映射端口
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1957607.html
Copyright © 2020-2023  润新知