OA权限树搭建 代码

来源:互联网 发布:matlab输出数组到txt 编辑:程序博客网 时间:2024/06/08 18:22
<ul id="tree"><s:iterator value="#application.topPrivilegeList"><li><input type="checkbox" name="privilegeIds" value="${id}" id="ck_${id}" onclick="doChecked(this)"    <s:property value="%{id in privilegeIds?'checked':''}"/> />   <label for="ck_${id}"><span class="folder">${name}</span></label><ul><s:iterator value="children"><li><input type="checkbox" name="privilegeIds" value="${id}" id="ck_${id}" onclick="doChecked(this)"    <s:property value="%{id in privilegeIds?'checked':''}"/> />   <label for="ck_${id}"><span class="folder">${name}</span></label><ul>   <s:iterator value="children"><li><input type="checkbox" name="privilegeIds" value="${id}" id="ck_${id}"  onclick="doChecked(this)"    <s:property value="%{id in privilegeIds?'checked':''}"/> />   <label for="ck_${id}"><span class="folder">${name}</span></label></li></s:iterator></ul></li></s:iterator></ul></li></s:iterator></ul>

取消/选中上下级 跟随变化的js

 <script type="text/javascript">        $("#tree").treeview();        </script>          <script type="text/javascript">function doChecked(inp){// 当选中或取消一个权限时,也同时选中或取消所有的下级权限var boo=$(inp).attr("checked");/* alert(boo); */$(inp).siblings("ul").find("input").attr("checked", boo);// 当选中一个权限时,也要选中所有的直接上级权限if(inp.checked == true){$(inp).parents("li").children("input").attr("checked", true);}else{// 如果当前是取消选中,并且同级中没有被选中的项,则也取消上级的选中状态var jCheckedSibingCB = $(inp).parent("li").siblings("li").children("input[type=checkbox]:checked");if(jCheckedSibingCB.size() == 0){var jCheckboxInput = $(inp).parent().parent("ul").prev("label").prev("input[type=checkbox]");jCheckboxInput.attr("checked", 0); // 递归操作每一层直属上级var jParentLi = jCheckboxInput.parent("li");if(jParentLi.size() > 0){doChecked(jCheckboxInput);} }}}


1 0
原创粉丝点击