调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...
生活随笔
收集整理的这篇文章主要介绍了
调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
刚开始的js 这么写的
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;}}}OnTreeNodeChildChecked(ele);} } function OnTreeNodeChildChecked(ele) {//自动处理上级 var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;var parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));if (parentChkBox != null) {var ChildsChkAll = true;var Boxs = parentDiv.getElementsByTagName('INPUT');var m = 0;var n = 0;for (var i = 0; i < Boxs.length; i++) {if (Boxs[i].type == 'checkbox') {m++;}if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {n++}}if (m == n) {ChildsChkAll = false;}parentChkBox.checked = ChildsChkAll;OnTreeNodeChildChecked(parentChkBox);} }}然后 加了个catch 就完事了
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;}}}OnTreeNodeChildChecked(ele);} } function OnTreeNodeChildChecked(ele) {//自动处理上级 try{var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;var parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));if (parentChkBox != null) {var ChildsChkAll = true;var Boxs = parentDiv.getElementsByTagName('INPUT');var m = 0;var n = 0;for (var i = 0; i < Boxs.length; i++) {if (Boxs[i].type == 'checkbox') {m++;}if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {n++}}if (m == n) {ChildsChkAll = false;}parentChkBox.checked = ChildsChkAll;OnTreeNodeChildChecked(parentChkBox);} }catch(e){} }
转载于:https://www.cnblogs.com/haihang/archive/2012/10/31/2748018.html
总结
以上是生活随笔为你收集整理的调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 如何用代码对repeating sect
- 下一篇: 周三的工作 张孝祖