实现CheckBox分级选中的经典代码

本文列出了CheckBox分级选中的代码,代码很复杂,需要大家仔细研究一番,不过您若是明白了这部分代码,那实现CheckBox分级选中绝不是问题。

成都创新互联公司专业为企业提供汉源网站建设、汉源做网站、汉源网站设计、汉源网站制作等企业网站建设、网页设计与制作、汉源企业网站模板建站服务,十多年汉源做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

CheckBox分级选中的实现方法如下:

 
 
 
  1. "Content-Language" content="zh-cn">  
  2. "Content-Type" content="text/html; charset=gb2312">  
  3. "GENERATOR" content="Microsoft FrontPage 4.0">  
  4. "ProgId" content="FrontPage.Editor.Document">  
  5. CheckBox
  6.  
  7. var n=document.getElementsByTagName("INPUT");
  8. var CheckBoxNum=n.length;
  9. var tf,SearchNodeName,SearchParentNodeName,SameNodeNum,
    SubNodeCheckedNum,SameNodeCheckedNum,SubNodeNum,SubNodeCheckedTF; 
  10. function FindParentNode(SubNodeName)    //获取上级结点名,并判断是否被选中
  11. {
  12.   tf=false;                //初始化选中状态
  13.   SearchNodeName=SubNodeName;
  14.   t=SubNodeName.lastIndexOf("_");    //判断是否存在上级结点
  15.   if(t!=-1)SearchNodeName=SubNodeName.substring(0,t);//如果存在上级结点,取得上级结点名
  16.   if(document.all(SubNodeName).checked)tf=true;//判断结点是否被选中
  17.   return SearchNodeName;
  18. function CheckSubNode(NodeName)    //获取结点名,并判断子结点是否选中
  19. {
  20.   SubNodeCheckedTF=false;    //初始化子结点选中状态
  21.   SubNodeNum=0;            //初始化子结点数目
  22.   SameNodeNum=0;        //初始化同级结点数目
  23.   SubNodeCheckedNum=0;        //初始化子结点被选中的数目
  24.   SameNodeCheckedNum=0;        //初始化同级结点被选中的数目
  25.   ParentNodeName=FindParentNode(NodeName);//上级结点名
  26.   SearchParentNodeName=NodeName;//当前结点名
  27.   d=NodeName.lastIndexOf("_");    //判断是否存在上级结点
  28.   if(d!=-1)SearchParentNodeName=SearchParentNodeName.substring(0,d);//如果存在上级结点,取得上级结点名
  29.   for(i=0;i
  30.   {
  31.     if(n[i].name.length==NodeName.length&&ParentNodeName==FindParentNode(n[i].name)) 字串3 
  32.     {
  33.       SameNodeNum+=1;        //同级结点数目加一
  34.       if(n[i].checked)SameNodeCheckedNum+=1;//同级结点被选中的数目加一
  35.     } 
  36. if(n[i].name.substring(0,NodeName.length)==NodeName&&n[i].name!=NodeName&&n[i].type=="checkbox")
  37.     {
  38.       SubNodeNum+=1;        //子结点数数目加一
  39.       if(n[i].checked)SubNodeCheckedNum+=1;//子结点被选中的数目加一
  40.     }
  41.   } 
  42.  if((SameNodeNum==1||SameNodeCheckedNum==0)&&(SubNodeCheckedNum==0)&&!document.all(NodeName).checked)
  43.   {
  44.       SubNodeCheckedTF=true;    //判断子结点是否被选中
  45.   }
  46.   return SearchParentNodeName;
  47. function CheckAll(BoxName)
  48. {
  49.   SearchNodeName=BoxName;
  50.   SearchParentNodeName=BoxName
  51.   SubNodeLength=BoxName.split("_").length; 
  52.   for(i=0;i
  53.   {
  54.     if(n[i].name.substring(0,BoxName.length)==BoxName&&n[i].name!=BoxName&&n[i].type=="checkbox")
  55.     n[i].checked=document.all(BoxName).checked?true:false;    //选中所有子结点
  56.   } 
  57.   for(j=1;j
  58.   {
  59.     document.all(FindParentNode(SearchNodeName)).checked=tf?true:false;
  60.     document.all(CheckSubNode(SearchParentNodeName)).checked=SubNodeCheckedTF?false:true;
  61.   } 
  62. }document.onclick=function(){if(event.srcElement.type=="checkbox")CheckAll(event.srcElement.name);}
  63.  
  64. "f1" >  
  65. "checkbox" name="bid">
     
  66.   "checkbox" name="bid_01">
     
  67.    "checkbox" name="bid_01_01">
     
  68.    "checkbox" name="bid_01_02">
     
  69.     "checkbox" name="bid_01_02_01">
     
  70.     "checkbox" name="bid_01_02_02">
     
  71.      "checkbox" name="bid_01_02_02_01">
     
  72.      "checkbox" name="bid_01_02_02_02">
     
  73.      "checkbox" name="bid_01_02_02_03">
     
  74.       "checkbox" name="bid_01_02_02_03_01">
     
  75.       "checkbox" name="bid_01_02_02_03_02">
     
  76.       "checkbox" name="bid_01_02_02_03_03">
     
  77.      "checkbox" name="bid_01_02_02_04">
     
  78.     "checkbox" name="bid_01_02_03">
       
    "checkbox" name="bid_01_03">
     
  79.    "checkbox" name="bid_01_04">
     
  80.   "checkbox" name="bid_02">
     
  81.   "checkbox" name="bid_03">
     
  82.   "checkbox" name="bid_04">
     

  83. "checkbox" name="ent" checkmain >
     
  84.   "checkbox" name="ent_01">
     
  85.    "checkbox" name="ent_01_01">
     
  86.   "checkbox" name="ent_02">
     
  87.   "checkbox" name="ent_03">
     
  88.   "checkbox" name="ent_04">
     

以上就是实现CheckBox分级选中的方法,希望能给大家带来帮助。

网页题目:实现CheckBox分级选中的经典代码
网页地址:http://www.mswzjz.cn/qtweb/news34/287334.html

温江区贝锐智能技术服务部_成都网站建设公司,为您提供小程序开发ChatGPT网站设计公司面包屑导航静态网站App设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能