asp多层复选框提交问题!!
用户的需求是由单选框选择要提问题的科目,当单选框选中一个科目时应该自动显示出该科目下所有好友并带有复选框,需要有一个全选按钮来选择全部好友,选中后提交。(因为之前有问题标...
用户的需求是由单选框选择要提问题的科目,当单选框选中一个科目时应该自动显示出该科目下所有好友并带有复选框,需要有一个全选按钮来选择全部好友,选中后提交。(因为之前有问题标题和内容,所以不能将单选在提交到本页刷新)
我现在用笨方法写出了程序,总共有7类科目,我写了7层,只是都隐藏,单选那个层哪个层显示出相应好友。但全选后我发现其他隐藏层的复选框也被选中了,这个怎么处理?如何控制只将显示层中的复选按钮选中?(我贴出7个层中1个,不然超过3000字)
代码如下:
<html>
<head>
<script language="javascript">
function show1()
{
document.getElementById('layer1').style.display = 'block';
document.getElementById('layer2').style.display = 'none';
document.getElementById('layer3').style.display = 'none';
document.getElementById('layer4').style.display = 'none';
document.getElementById('layer5').style.display = 'none';
document.getElementById('layer6').style.display = 'none';
document.getElementById('layer7').style.display = 'none';
}
function sel()
{
for(var i=0;i<questform.elements.length;i++)
{
if(questform.elements[i].name=="friends")
{
if(!questform.elements[i].checked)
{
questform.elements[i].checked=true;
}
else
{
questform.elements[i].checked=false
}
}
}
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="ressubmitsave.asp" name="questform">
<tr>
<td rowspan="4">
<p align="center">其他<input type="radio" value="其他" name="classbig" onClick="show1();" checked></td>
</tr>
</td>
</tr>
<tr>
<td> </td>
<td width="70%" bgcolor="#FFFFFF">
<div style="position: absolute; width: 406px; height: 100px; z-index: 1; top: 355px; top: 395px; display:block" id="layer1">
定向提问----您在<font color="red">其他</font>科目中的师兄有:<br>
<%
set rsLei=server.createobject("adodb.recordset")
sql1="select * from friends where myselfid = '"&id&"' and subject = '其他'"
rsLei.open sql1,conn,1,1
do while not rsLei.eof
friendid = rsLei("friendid")
set res=server.createobject("adodb.recordset")
sqll="select * from userinfo where [id]="&friendid&""
res.open sqll,conn,1,1
do while not res.eof
%>
<input type="checkbox" name="friends" value="<%=friendid%>"><%=res("nickname")%>
<%
res.movenext
loop
res.close
set res=nothing
rsLei.movenext
loop
rsLei.close
set rsLei = nothing%>
<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel()">
</div>
谢谢easyplay8er的回答,你的回答让我扩展了思路,我也按照你说的进行了修改,可是不是应该用数组来取呢?因为我修改后确实不是所有的都被选中,但比如有三个好友,选择全选后只出现了一个被选中。麻烦你在帮我琢磨琢磨~?谢谢!
修改后代码如下:
层中代码:
<div style="display:block" id="layer1">
<input type="checkbox" name="<%=friendid%>" value="<%=friendid%>"><%=res("nickname")%>
<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel(<%=friendid%>)">
</div>
javascript代码:
function sel(friendid) {
var friendid = friendid
for(var i=0;i<questform.elements.length;i++) {
if(questform.elements[i].name==friendid) {
if(!questform.elements[i].checked) {
questform.elements[i].checked=true; }
else {
questform.elements[i].checked=false }
}
}
}
</script> 展开
我现在用笨方法写出了程序,总共有7类科目,我写了7层,只是都隐藏,单选那个层哪个层显示出相应好友。但全选后我发现其他隐藏层的复选框也被选中了,这个怎么处理?如何控制只将显示层中的复选按钮选中?(我贴出7个层中1个,不然超过3000字)
代码如下:
<html>
<head>
<script language="javascript">
function show1()
{
document.getElementById('layer1').style.display = 'block';
document.getElementById('layer2').style.display = 'none';
document.getElementById('layer3').style.display = 'none';
document.getElementById('layer4').style.display = 'none';
document.getElementById('layer5').style.display = 'none';
document.getElementById('layer6').style.display = 'none';
document.getElementById('layer7').style.display = 'none';
}
function sel()
{
for(var i=0;i<questform.elements.length;i++)
{
if(questform.elements[i].name=="friends")
{
if(!questform.elements[i].checked)
{
questform.elements[i].checked=true;
}
else
{
questform.elements[i].checked=false
}
}
}
}
</script>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="ressubmitsave.asp" name="questform">
<tr>
<td rowspan="4">
<p align="center">其他<input type="radio" value="其他" name="classbig" onClick="show1();" checked></td>
</tr>
</td>
</tr>
<tr>
<td> </td>
<td width="70%" bgcolor="#FFFFFF">
<div style="position: absolute; width: 406px; height: 100px; z-index: 1; top: 355px; top: 395px; display:block" id="layer1">
定向提问----您在<font color="red">其他</font>科目中的师兄有:<br>
<%
set rsLei=server.createobject("adodb.recordset")
sql1="select * from friends where myselfid = '"&id&"' and subject = '其他'"
rsLei.open sql1,conn,1,1
do while not rsLei.eof
friendid = rsLei("friendid")
set res=server.createobject("adodb.recordset")
sqll="select * from userinfo where [id]="&friendid&""
res.open sqll,conn,1,1
do while not res.eof
%>
<input type="checkbox" name="friends" value="<%=friendid%>"><%=res("nickname")%>
<%
res.movenext
loop
res.close
set res=nothing
rsLei.movenext
loop
rsLei.close
set rsLei = nothing%>
<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel()">
</div>
谢谢easyplay8er的回答,你的回答让我扩展了思路,我也按照你说的进行了修改,可是不是应该用数组来取呢?因为我修改后确实不是所有的都被选中,但比如有三个好友,选择全选后只出现了一个被选中。麻烦你在帮我琢磨琢磨~?谢谢!
修改后代码如下:
层中代码:
<div style="display:block" id="layer1">
<input type="checkbox" name="<%=friendid%>" value="<%=friendid%>"><%=res("nickname")%>
<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel(<%=friendid%>)">
</div>
javascript代码:
function sel(friendid) {
var friendid = friendid
for(var i=0;i<questform.elements.length;i++) {
if(questform.elements[i].name==friendid) {
if(!questform.elements[i].checked) {
questform.elements[i].checked=true; }
else {
questform.elements[i].checked=false }
}
}
}
</script> 展开
1个回答
展开全部
你checkbox的name为静态的,当然一选就全选了
name="<%=friendid%>"
把后面的button 提到每个类别的后面,并带上参数<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel(<%=friendid%>)">
最后把sel
function sel(id) 加入判断复选框名=id就是
sel (id)这个函数要改啊
用docuemnt.getElementByName("id")获取所有name为id的元素
name="<%=friendid%>"
把后面的button 提到每个类别的后面,并带上参数<input type="button" name="butto" value="全 选" class="list_button_active" onClick="sel(<%=friendid%>)">
最后把sel
function sel(id) 加入判断复选框名=id就是
sel (id)这个函数要改啊
用docuemnt.getElementByName("id")获取所有name为id的元素
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询