常用的js全选checkbox按钮的功能

在WEB项目中关于全选的checkbox功能肯定会遇到,而且每个项目中都会有不少的地方会用到。下面把以前自己用的例子贴出来,在ie和firefox下都可以正常运行,有兴趣的朋友也可以参考下。

例子示意图如下:



代码如下:

Html代码
  1. >  
  2. <html><head><title>checkbox的js全选功能title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  3. <link href="default.css" type="text/css" rel="stylesheet" />  
  4. <script language="JavaScript" src="selectall.js">script>  
  5. <script>  
  6.     function sel(obj){   
  7.         _tlsCheckboxSelAll(document.frmUser,obj);   
  8.     }   
  9. script>  
  10. head><body bgcolor="#FFFFFF" topmargin="15px" leftmargin="5px" rightmargin="5px">        
  11. <center><b>checkbox的js全选功能b>center>  
  12. <form name="frmUser" id="frmUser" method="post">             
  13. <table class="tabelBoder"  width="100%" align="center" cellspacing="0" cellpadding="3" border="0">  
  14. <tr height="30" class="RH1">  
  15. <td width="4%" align="left"><input type="checkbox" name="id_all" id="id_all" value="46" onclick="sel(this)">td>  
  16. <td width="17%" align="left">姓名td>  
  17. <td width="23%" align="left">地址td>  
  18. tr>  
  19. <tr height="30" class="N1">  
  20. <td width="4%" align="left"><input type="checkbox" name="id" value="46" onclick="sel(this)">td>  
  21. <td width="17%" align="left">张三td>  
  22. <td width="23%" align="left">北京td>  
  23. tr>  
  24. <tr height="30" class="N1">  
  25. <td width="4%" align="left"><input type="checkbox" name="id" value="46" onclick="sel(this)">td>  
  26. <td width="17%" align="left">李四td>  
  27. <td width="23%" align="left">上海td>  
  28. tr>  
  29. <tr height="30" class="N1">  
  30. <td width="4%" align="left"><input type="checkbox" name="id" value="46" onclick="sel(this)">td>  
  31. <td width="17%" align="left">王五td>  
  32. <td width="23%" align="left">天津td>  
  33. tr>  
  34. table>  
  35. form>  
  36. <ui>  
  37.     <li>支持ie和firefoxli>  
  38.     <li>选中全选checkbox,则所有子checkbox自动选中li>  
  39.     <li>去掉选中全选checkbox,则所有子checkbox自动全部取消选中li>  
  40.     <li>如果选中全部子checkbox,则全选checkbox自动选中li>  
  41.     <li>全选后,如果去掉选中任何子checkbox,则全选checkbox自动取消选中li>  
  42. ul>  
  43. body>html>  

checkbox的js全选功能



		
checkbox的js全选功能
姓名 地址
张三 北京
李四 上海
王五 天津
  • 支持ie和firefox
  • 选中全选checkbox,则所有子checkbox自动选中
  • 去掉选中全选checkbox,则所有子checkbox自动全部取消选中
  • 如果选中全部子checkbox,则全选checkbox自动选中
  • 全选后,如果去掉选中任何子checkbox,则全选checkbox自动取消选中


  • Js代码
    1. /**  
    2.  * checkbox的点击方法  
    3.  * 要求:  
    4.  * 1.全选/全不选的checkbox的name属性为 单个checkbox的name属性名+_all , 注意:最后必须为_all.  
    5.  *   例如:单个checkbox的name=or_id,则全选checkbox的name=or_id_all  
    6.  * 2.全选/全不选的checkbox必须定义id属性,并且id属性值与name属性值相同  
    7.  * 3.所有单个的checkbox在同一个form中.  
    8.  * 4.全选/全不选的checkbox可以在form中也可以在form外面.  
    9.  * 5.整个页面不允许再有和全选/全不选checkbox同name和同id的组件.  
    10.  *   
    11.  */  
    12. function _tlsCheckboxSelAll(formObj,checkboxClicked){   
    13.     var checkName = checkboxClicked.name;//取得点击的checkbox的name属性   
    14.     var index = checkName.indexOf("_all");//判断是否有_all字符串   
    15.     var isAll = false;   
    16.     if(index!=-1){//如果有_all   
    17.         if(index+"_all".length==checkName.length){//满足说明_all是在最后面,表示这是个全选/全不选的checkbox.   
    18.             isAll = true;   
    19.         }   
    20.     }   
    21.     var thisChecked = checkboxClicked.checked;//当前checkbox的状态 true=选中 false=不选中   
    22.     if(isAll){//点了全选/全不选的checkbox   
    23.         var childCheckName = checkName.substring(0,index);   
    24.         eval("var allChildCheckboxs = formObj."+childCheckName);   
    25.         var childCheckboxCount = allChildCheckboxs.length;   
    26.         if(childCheckboxCount==null){//只有1个单个的checkbox   
    27.             allChildCheckboxs.checked = thisChecked;   
    28.         }else{//有2个或2个以上的单个checkbox   
    29.             for(var i=0;i
    30.                 allChildCheckboxs[i].checked = thisChecked;   
    31.             }   
    32.         }   
    33.     }else{//点了单个的checkbox   
    34.         var parentCheckboxName = checkName+"_all";   
    35.         if(thisChecked==false){   
    36.             document.getElementById(parentCheckboxName).checked=false;   
    37.         }else{//判断点了当前checkbox后是否全部的单个checkbox都处于true状态   
    38.             eval("var allChildCheckboxs = formObj."+checkName);   
    39.             var childCheckboxCount = allChildCheckboxs.length;   
    40.             var isAllChecked = true;   
    41.             if(childCheckboxCount==null){//只有1个单个的checkbox   
    42.                 if(allChildCheckboxs.checked==false){   
    43.                     isAllChecked = false;   
    44.                 }   
    45.             }else{//有2个或2个以上的单个checkbox   
    46.                 for(var i=0;i
    47.                     if(allChildCheckboxs[i].checked==false){   
    48.                         isAllChecked = false;   
    49.                         break;   
    50.                     }   
    51.                 }                  
    52.             }   
    53.             if(isAllChecked){//全部单个checkbox都处于true状态   
    54.                 document.getElementById(parentCheckboxName).checked=true;   
    55.             }   
    56.         }   
    57.     }   
    58. }  

    此上为转帖看到这段代码不错,不过就是实现起来太复杂了。

     

    还有别的方法也可以基本实现此功能

     

    一,

    1. function onSelectAll()   
    2.  {   
    3.  for(var i = 0;i
             if (document.forms.form1.elements[i].type== "checkbox" ){                 if (checkAll.checked== true ){                document.forms.form1.elements[i].checked= true ;}                 else {                document.forms.form1.elements[i].checked= false ;                }            }        }     }  

    二。

    1.  function selectAll(obj){
          var chkobj = document.getElementsByName("chkid");
          if(chkobj!=null){
             if(obj.checked){
               for(var i=0;i          chkobj[i].checked=true;
               }
             }
             else{
               for(var i=0;i          chkobj[i].checked=false;
               }
             }
          }

    你可能感兴趣的:(javascript,stylesheet,class,javascript,input,border,function)