欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...

发布时间:2023/12/2 编程问答 41 豆豆

刚开始的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 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。