首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

实现全选以及分类全选。该如何处理

2012-04-26 
实现全选以及分类全选。在asp中,想实现点击总复选框,实现所有小类复选框全选,点大类的复选框,该大类下复选

实现全选以及分类全选。
在asp中,想实现点击总复选框,实现所有小类复选框全选,点大类的复选框,该大类下复选框全选。捣鼓了一天,也没弄出来,在这里请教高手。
函数f(),f1(),f2()各自怎么实现?

HTML code
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!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-Type" content="text/html; charset=gb2312" /><title>无标题文档</title></head><body><form id="form1" name="form1" method="post" action=""><table width="479" height="53" border="1" cellspacing="0"><%for i=1 to 5%>  <tr>    <td width="488"><%=i%>.<input type="checkbox" name="checkbox" value="checkbox"  onclick="f()"/>      全选该类</td> <%' 这里是大类复选框,点击实现该类下所有小类全选。%>  </tr>  <tr>    <td>    <div>    <ul>    <%    for j=1 to 3    %>    <li style="float:left; width:60px"><%=j%>.    <input type="checkbox" name="checkbox2" value="checkbox"  onclick="f1()"/></li>    <%    next    %>    </ul>    </div>    </td>  </tr> <%  next%>  <tr>    <td width="488" align="right">&nbsp;<input type="checkbox" name="checkbox" value="checkbox"  onclick="f2()"/>      全选&nbsp;&nbsp; </td><%' 这里是总复选框,点击实现所有小类全选%>  </tr></table></form></body></html>


[解决办法]
<script type="text/javascript">
function change(name,o){
if(name!="all"){
var a=document.getElementsByName(name);
for(var i=0;i<a.length;i++){
a[i].checked=o.checked;
}
}else{
var a=document.getElementsByTagName("input");
for(var i=0;i<a.length;i++){
if(a[i].type=="checkbox"){
a[i].checked=o.checked;
}
}
}
}
function init(){
var a=document.getElementsByName("a");
var b=document.getElementsByName("b");
for(var i=0;i<a.length;i++){
a[i].onclick=ss;
}
for(var i=0;i<b.length;i++){
b[i].onclick=ss;
}
}
function ss(){
var an=0;
var bn=0;
var a=document.getElementsByName("a");
var b=document.getElementsByName("b");
var alls=document.getElementsByName("all")[0];
var al=document.getElementsByName("al")[0];
var bl=document.getElementsByName("bl")[0];
for(var i=0;i<a.length;i++){
if(a[i].checked){
an+=1;
if(an==a.length){
al.checked=true;
}else{
al.checked="";
}
if(an==a.length&&bn==b.length){
alls.checked=true;
}else{
alls.checked="";
}
}
}
for(var i=0;i<b.length;i++){
if(b[i].checked){
bn+=1;
if(bn==a.length){
bl.checked=true;
}else{
bl.checked="";
}
if(an==a.length&&bn==b.length){
alls.checked=true;
}else{
alls.checked="";
}
}
}
}
window.onload=init;
</script>
</head>

<body>
<input type="checkbox" name="a">a1<br/>
<input type="checkbox" name="a">a2<br/>


<input type="checkbox" name="a">a3<br/>
<input type="checkbox" name="al" onclick="change('a',this)">aL<br/>
<input type="checkbox" name="b">b1<br/>
<input type="checkbox" name="b">b2<br/>
<input type="checkbox" name="b">b3<br/>
<input type="checkbox" name="bl" onclick="change('b',this)">bL<br/>
<input type="checkbox" name="all" onclick="change('all',this)">all<br/>
</body>
这样试试
[解决办法]
楼主把标签分组,就很好办了

<form id="form1" name="form1" method="post" action="">

<table width="479" height="53" border="1" cellspacing="0">
<%
for i=1 to 5
%>
<tr>
<td width="488"><%=i%>.<input type="checkbox" name="checkbox" value="checkbox" onclick="f('<%=i%>')"/>
全选该类</td> <%' 这里是大类复选框,点击实现该类下所有小类全选。%>
</tr>
<tr>
<td>
<div>
<ul>
<%
for j=1 to 3
%>
<li style="float:left; width:60px"><%=j%>. <input type="checkbox" name="chk_<%=i%>" value="checkbox" onclick="f1()"/></li>
<%
next
%>

</ul>
</div>
</td>
</tr>
 <%
next
%>
<tr>
<td width="488" align="right">&nbsp;<input type="checkbox" name="checkbox" value="checkbox" onclick="f2()"/>
全选&nbsp;&nbsp; </td><%' 这里是总复选框,点击实现所有小类全选%>
</tr>
</table></form>
</body>


function f(id){
document.getElementsByName("chk_"+id); // 就是此类下面的所有复选框了
// 其它代码略
}

热点排行