dtree中实现checkbox,父节点和子节点的行为一样

页面:

<div class="zskbgl">
            <div class="zskbgr">
            <form id="movefrm" action="tree!doMoveNode.action">
                <#list nodeList as node>
                    <input type="hidden" name = "menuList[${node_index}].menuId" value = "${node.menuId?c}" />
                    <input type="hidden" name = "menuList[${node_index}].lastuptDttm" value = "${node.lastuptDttm?string('yyyy-MM-dd HH:mm:ss')}" />
                </#list>
               
                <div>
                    <div id="srcTree" class="zsktreepage" style="float:left">
                     <script type="text/javascript">
                        a = new dTree('a');
                        a.config.useCookies=false;
                        <#if dataTypeCd == 1>
                            a.add(0,-1,'知识库(起始点)','javascript: void(0);');
                        <#else>
                            a.add(0,-1,'学习库(起始点)','javascript: void(0);');
                        </#if>
                       
                        <#list nodeList as node>
                            <#if node.parMenuId??>
                                a.add(${node.menuId?c}, ${node.parMenuId?c},'<input type="checkbox" name="check" class="${node.parMenuId?c}" value="${node.menuId?c}" id="ch${node.menuId?c}"  onClick="kmMenu.checkStatus(${node.menuId?c},this)" />${node.menuNm}');
                                <#else>
                                a.add(${node.menuId?c}, 0,'<input type="checkbox" name="check" class="0" value="${node.menuId?c}" id="ch${node.menuId?c}"  onClick="kmMenu.checkStatus(${node.menuId?c}, this)" />${node.menuNm}');
                            </#if>
                           
                        </#list>
                        document.write(a);
                       
                 </script>
                    </div>

 

 

js:

var kmMenu = {

   checkStatus:function(no,chkBox){
        this.checkPar(chkBox);//当子目录选中时,父目录也选中
        var chks = document.getElementsByTagName('input');//得到所有input
        for(var i=0;i <chks.length;i++){
            if(chks[i].name.toLowerCase() == 'check'){//得到所名为check的input
                if(chks[i].className == no){//ID等于传进父目录ID时
                    chks[i].checked = chkBox.checked;//保持选中状态和父目录一致
                    this.checkStatus(chks[i].value,chks[i]);//递归保持所有的子目录选中
                }
            }
        }
    },
   
    checkPar:function(chkBox) {
        if(chkBox.name.toLowerCase() == 'check' && chkBox.checked==false && chkBox.className != 0) {//判断本单击为选中,并且不是根目录,则选中父目录
            var chkObject = document.getElementById("ch"+chkBox.className);//得到父目录对象
           // alert("chkBox.checked:"+chkBox.checked);
            chkObject.checked=chkBox.checked;
            this.checkPar(chkObject);
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值