通过JS,全选当前页面所有的复选框

  最近在做项目时,遇到一个这样的需求,就是在多级菜单中,选中二级的复选框,默认将它下面的三级复选框全部选中,若选中一级的复选框,默认的将它下面的二级的和三级的复选框全部选中,通过JS,可以得到当前页面所有的复选框,但对于如何判断子级的复选框也能选中,就有些不太明白了,向朋友请教了下,呵呵,终于拨云见天了,感谢,方法如下,给遇到我类似需求的朋友一个参考!

  1、首先得到当前页面所有的复选框,这个有两种方法:定义最外层的DIV的ID为chks的话
  法一:var ipt = document.getElementById("chks").getElementsByTagName("input");

       法二:var inputs = document.getElementsByTagName("input");
  for(var i=0;i<inputs.length;i++){
   if(inputs[i].type == "checkbox"){}

  }

这样也行,只不过法二比较麻烦些。

  2、判断级联,其实方法挺简单的,大致这样,一级的ID为a1,a2,a3,二级的为a1b1,a1b2,a2b1,a2b2,a2b3样的,三级的为a1b1c1,a1b1c2,a1b1,c3,a1b2c1,a1b2c2,a1b2c3等等,然后就可以用indexOf来判断是否是子级了,说了这么多,下面将整个代码贴出来。

<html>
<head>
 <title></title>
<script type="text/javascript">
 function mselect(chk){
  var id = chk.id//获取当前复选框的ID
  var chked = chk.checked;//将当前复选框选中,
  var ipt = document.getElementById("chks").getElementsByTagName("input");
  for(var i=0; i<ipt.length; i++){
   //判断a1b1是否是a1的子级,若是的话,返回0,若不是,则返回-1
   if(ipt[i].id.indexOf(id)>-1){
    ipt[i].checked = chked;
    }
   }
  }
</script>
</head>
<body>
 <div id="chks">
<input type="checkbox" value="0" id="a001" onclick="mselect(this);" >一级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001001" onclick="mselect(this);"  >二级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002" onclick="mselect(this);"  >二级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002001" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002002" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003001" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003002" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003003" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003004" onclick="mselect(this);" >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003005" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003006" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002004" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002005" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001003" onclick="mselect(this);"  >二级<br>
<input type="checkbox" value="0" id="a002" onclick="mselect(this);"  >一级<br>
</div>
</body>
</html>

运行前后的效果图如下:

 

时间: 2024-11-02 05:12:58

通过JS,全选当前页面所有的复选框的相关文章

JS实现刷新父页面不弹出提示框的方法_javascript技巧

本文实例讲述了JS实现刷新父页面不弹出提示框的方法.分享给大家供大家参考,具体如下: A页面 open方式出 B页面 ,当B页面做了类如保存动作后,需要关闭B页面,刷新A页面的情况下,会弹出一个提示框,要求点重试,这个就是发生预料之外的情况,用户体验很差. 解决方案分两种情况: 1.A页面很简单的情况(没有frame/iframe) 在B页面中的function中: function close(){ window.opener.location.reload(); window.opener

javascript选择当前页面所有checkbox 复选框代码

javascript选择当前页面所有checkbox 复选框代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.jzread.com/1999/xhtml"> <head&g

多选操作时用的复选框,有关验证与取值,求解方法哪里不对,也是找来的代码

问题描述 多选操作时用的复选框,有关验证与取值,求解方法哪里不对,也是找来的代码 表单如下: 全选ABCDEF 全选及验证javascript如下: function checkAllBox(obj){ var answer= document.getElementsByName(""answer""); if(obj.checked==true){ for(var i=0;i<answer.length;i++){ answer[i].checked = t

页面查询结果复选后插入数据库问题。。求高手!!!

问题描述 我在制作一个ASP酒店预订网页,现在我设置了一个查询页面,即在一个页面上输入内容在另一个页面上显示数据库中所有相关的数据内容,例如输入"海口",在另一个页面上会显示海口的所有酒店.现在我想在显示内容前面添加一个复选框,默认为不勾选,目的是让用户直接在查询结果上勾选自己想预定的酒店,单击确定按钮后查询结果中的"酒店名称"和"价格"插入到一个用户预订信息的空数据表yuding中.(查询结果属于数据表hotelserch,包括酒店名称,价格等

代码-关于JS全选的问题请看一下哪里出错了?

问题描述 关于JS全选的问题请看一下哪里出错了? 下面这个代码可以点击全选,也可以取消全选,但是取消单个选择的结果时,全选还是选中的状态,求大神破解 //全选 function selectAll(nameVal) { //获取复选框的form对象 var formObj = $("form:has(:checkbox[name='"+nameVal+"'])"); //根据form缓存数据判断批量全选方式 if(formObj.data('selectType')

js html css实现复选框全选与反选_javascript技巧

本文实例为大家分享了js复选框全选与反选实现代码,供大家参考,具体内容如下 <html> <head> <title>html+css+js实现复选框全选与反选</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="keywords" content=&quo

基于jquery实现复选框全选,反选,全不选等功能_jquery

jquery 实现全选,反选,全不选等功能,下面直接以例子进行说明.设页面有如下一组复选框和几个相关按钮(全选,反选,全不选等): <input type="checkbox" name="fruit" value="apple" />苹果 <input type="checkbox" name="fruit" value="orange" />橘子 <in

jquery做复选框的全选、全部选、反选

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证_jquery

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> &l