js实现权限树的更新权限时的全选全消功能


Posted in Javascript onFebruary 17, 2009
// JScript 文件 
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; 
} 
function setParentChecked(objNode) 
{ 
var objParentDiv = getParentByTagName(objNode,"div"); 
if(objParentDiv == null || objParentDiv == "undefined") 
return; 
var objID = objParentDiv.getAttribute("ID"); 
var objParentCheckBox = document.getElementById(objID.replace("Nodes","CheckBox")); 
if(objParentCheckBox == null || objParentCheckBox == "undefined") 
return; 
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox") 
return; 
//add 
// if (objNode.checked=false) objPraentCheckBox.checked=false; 
// objParentCheckBox.checked = true; 
setParentChecked(objParentCheckBox); 
} 
function setParentUnChecked(objNode) 
{ 
var objParentDiv = getParentByTagName(objNode,"div"); 
if(objParentDiv == null || objParentDiv == "undefined") 
return; 
var objID = objParentDiv.getAttribute("ID"); 
var objParentCheckBox = document.getElementById(objID.replace("Nodes","CheckBox")); 
if(objParentCheckBox == null || objParentCheckBox == "undefined") 
return; 
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox") 
return; 
//add 
// if (objNode.checked=false) objPraentCheckBox.checked=false; 
objParentCheckBox.checked = false; 
setParentUnChecked(objParentCheckBox); 
} 
function setChildCheckedState(div,state) 
{ 
var objchild = div.childNodes; 
var count = objchild.length; 
for(var i=0;i<objchild.length;i++) 
{ 
var tempObj = objchild[i]; 
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox") 
{ 
tempObj.checked = state; 
} 
// debugger; 
setChildCheckedState(tempObj,state); 
} 
} 
function TreeNodeChecked() 
{ 
var objNode = window.event.srcElement; 
if(objNode.tagName!="INPUT" || objNode.type!="checkbox") 
return; 
// debugger; 
if(objNode.checked == true) 
{ 
setParentChecked(objNode); 
} 
else 
{ 
setParentUnChecked(objNode); 
} 
var objID = objNode.getAttribute("ID"); 
var objParentDiv = document.getElementById(objID.replace("CheckBox","Nodes")); 
if(objParentDiv==null || typeof(objParentDiv) == "undefined") 
return; 
setChildCheckedState(objParentDiv,objNode.checked); 
} 
function SetTreeNodeChecked(objNode1) 
{ 
var objNode =objNode1; 
var objID = objNode.getAttribute("ID"); 
var objParentDiv = document.getElementById(objID.replace("CheckBox","Nodes")); 
if(objParentDiv==null || typeof(objParentDiv) == "undefined") 
return; 
setChildCheckedState(objParentDiv,objNode.checked); 
} 
function GetYHQS(id) 
{ 
PageMethods.CallYHQX(id,callsuccessed); 
} 
function callsuccessed(result) 
{ 
// //循环页面 
//debugger; 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
objNode.checked=false; 
} 
} 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
//找到 
//比较 
if (result.indexOf(objNode.title)!=-1) 
{ 
objNode.checked=true; 
SetTreeNodeChecked(objNode); 
} 
} 
} 
} 
function test() 
{ 
debugger; 
//循环页面 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
//找到 
//比较 
objNode.checked=true; 
} 
} 
}
Javascript 相关文章推荐
jquery插件之easing 动态菜单
Aug 21 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
防止登录页面出现在frame中js代码
Jul 22 Javascript
js使用心得分享
Jan 13 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
javascript实现文字无缝滚动
Dec 27 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
vue.js组件之间传递数据的方法
Jul 10 Javascript
详解react-redux插件入门
Apr 19 Javascript
element-ui表格数据转换的示例代码
Aug 24 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 #Javascript
JSON扫盲帖 JSON.as类教程
Feb 16 #Javascript
动态为事件添加js代码示例
Feb 15 #Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
Feb 15 #Javascript
javascript Ext JS 状态默认存储时间
Feb 15 #Javascript
Javascript 获取链接(url)参数的方法
Feb 15 #Javascript
JavaScript 获得选中文本内容的方法
Feb 15 #Javascript
You might like
php实现加减法验证码代码
2014/02/14 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php无序树实现方法
2015/07/28 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python线程池threadpool使用篇
2018/04/27 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
员工自我鉴定范文
2013/10/06 职场文书
大学毕业生简单自荐信
2013/11/05 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
产品推广策划方案
2014/05/10 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL