实现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. } 
  19. function CheckSubNode(NodeName)    //获取结点名,并判断子结点是否选中
  20. {
  21.   SubNodeCheckedTF=false;    //初始化子结点选中状态
  22.   SubNodeNum=0;            //初始化子结点数目
  23.   SameNodeNum=0;        //初始化同级结点数目
  24.   SubNodeCheckedNum=0;        //初始化子结点被选中的数目
  25.   SameNodeCheckedNum=0;        //初始化同级结点被选中的数目
  26.   ParentNodeName=FindParentNode(NodeName);//上级结点名
  27.   SearchParentNodeName=NodeName;//当前结点名
  28.   d=NodeName.lastIndexOf("_");    //判断是否存在上级结点
  29.   if(d!=-1)SearchParentNodeName=SearchParentNodeName.substring(0,d);//如果存在上级结点,取得上级结点名
  30.   for(i=0;i
  31.   {
  32.     if(n[i].name.length==NodeName.length&&ParentNodeName==FindParentNode(n[i].name)) 字串3 
  33.     {
  34.       SameNodeNum+=1;        //同级结点数目加一
  35.       if(n[i].checked)SameNodeCheckedNum+=1;//同级结点被选中的数目加一
  36.     } 
  37. if(n[i].name.substring(0,NodeName.length)==NodeName&&n[i].name!=NodeName&&n[i].type=="checkbox")
  38.     {
  39.       SubNodeNum+=1;        //子结点数数目加一
  40.       if(n[i].checked)SubNodeCheckedNum+=1;//子结点被选中的数目加一
  41.     }
  42.   } 
  43.  if((SameNodeNum==1||SameNodeCheckedNum==0)&&(SubNodeCheckedNum==0)&&!document.all(NodeName).checked)
  44.   {
  45.       SubNodeCheckedTF=true;    //判断子结点是否被选中
  46.   }
  47.   return SearchParentNodeName;
  48. } 
  49. function CheckAll(BoxName)
  50. {
  51.   SearchNodeName=BoxName;
  52.   SearchParentNodeName=BoxName
  53.   SubNodeLength=BoxName.split("_").length; 
  54.   for(i=0;i
  55.   {
  56.     if(n[i].name.substring(0,BoxName.length)==BoxName&&n[i].name!=BoxName&&n[i].type=="checkbox")
  57.     n[i].checked=document.all(BoxName).checked?true:false;    //选中所有子结点
  58.   } 
  59.   for(j=1;j
  60.   {
  61.     document.all(FindParentNode(SearchNodeName)).checked=tf?true:false;
  62.     document.all(CheckSubNode(SearchParentNodeName)).checked=SubNodeCheckedTF?false:true;
  63.   } 
  64. }document.onclick=function(){if(event.srcElement.type=="checkbox")CheckAll(event.srcElement.name);}
  65.  
  66. "f1" >  
  67. "checkbox" name="bid">
     
  68.   "checkbox" name="bid_01">
     
  69.    "checkbox" name="bid_01_01">
     
  70.    "checkbox" name="bid_01_02">
     
  71.     "checkbox" name="bid_01_02_01">
     
  72.     "checkbox" name="bid_01_02_02">
     
  73.      "checkbox" name="bid_01_02_02_01">
     
  74.      "checkbox" name="bid_01_02_02_02">
     
  75.      "checkbox" name="bid_01_02_02_03">
     
  76.       "checkbox" name="bid_01_02_02_03_01">
     
  77.       "checkbox" name="bid_01_02_02_03_02">
     
  78.       "checkbox" name="bid_01_02_02_03_03">
     
  79.      "checkbox" name="bid_01_02_02_04">
     
  80.     "checkbox" name="bid_01_02_03">
       
    "checkbox" name="bid_01_03">
     
  81.    "checkbox" name="bid_01_04">
     
  82.   "checkbox" name="bid_02">
     
  83.   "checkbox" name="bid_03">
     
  84.   "checkbox" name="bid_04">
     

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

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


分享题目:实现CheckBox分级选中的经典代码
本文链接:http://www.xwwzsj.com/article/dphpeop.html

其他资讯

售后响应及时

7×24小时客服热线

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款