注册 登录
编程论坛 J2EE论坛

[求助]如何获取checkbox选项是选中还是没选中?

xhdwell 发布于 2006-09-18 22:50, 3903 次点击

刚才哪个RADIO问题解决了~但现在要一个多选题~~用到的是checkbox,有不知道怎么获取checkbox到底选中了还是没选中!

16 回复
#2
z1089799792006-09-19 09:02
应该也是判断checked
你试试
#3
千里冰封2006-09-19 10:04
一样的,一个一个查就可以了
#4
可可℃乐2006-09-19 11:01

复选框的话他们的NAME属性设置成一样.
VALUE值不同.就OK了

#5
xhdwell2006-09-19 11:11

能具体点吗?我试了很多方法,貌似都不行的~~我是这样做的~~
<input name="question51" type="checkbox" value="check1">
Response.Write
<br>
<input name="question52" type="checkbox" value="check2">
document.write
<br>
<input name="question53" type="checkbox" value="check3">
Application(""s1"") = 0
<br>
<input name="question54" type="checkbox" value="check4">
var I = I + 1<br>
读取的时候是这样读取的:
if(!(request.getParameter("question53").equals(""))
&& !(request.getParameter("question54").equals(""))
)
{
。。。。。。。。。
}
但这个方法好象不对啊~~只要我不选中question53和question54这2个checkbox,按确定就没反映了~~这当然不是我要结果~谁能帮我改下!感激不尽啊~~

#6
可可℃乐2006-09-19 11:51
当然你计算成绩的时候最好写到一个SERVLET中去控制成绩的计算.
<table width="524" border="0" cellpadding="0" cellspacing="0">
<!-------------------------------------------->
<tr>
<td width="520" height="70">
<div align="left">作标记
<input type="checkbox" name="biaoji" value="checkbox" />
<%=i%> .<%=rs.getString("question")%>.(<%=rs.getString("score")%>分)
</div>
</td>
</tr>
<!-------------------------------------------->
<tr>
<td height="43">
<div align="left">
<input type="checkbox" name="answer<%=t%>" value="A" />
A. <%=rs.getString("A")%>
</div></td>
</tr>
<!-------------------------------------------->
<tr>
<td height="43">
<div align="left">
<input type="checkbox" name="answer<%=t%>" value="B" />
B. <%=rs.getString("B")%>
</div>
</td>
</tr>
<!-------------------------------------------->
<%
String C = rs.getString("C");
if(!C.equals("")){
out.println("<tr><td height='43'><div align='left'>"+"<input type='checkbox' name='answer"+t+"' value='C'/>"+" C ."+C+"</div></td></tr>");
}else{

}

String D = rs.getString("D");
if(!D.equals("")){
out.println("<tr><td height='43'><div align='left'>"+"<input type='checkbox' name='answer"+t+"' value='D'/>"+" D ."+D+"</div></td></tr>");
}else{

}

String E = rs.getString("E");
if(!E.equals("")){
out.println("<tr><td height='43'><div align='left'>"+"<input type='checkbox' name='answer"+t+"' value='E'/>"+" E ."+E+"</div></td></tr>");
}else{

}

String F = rs.getString("F");
if(!F.equals("")){
out.println("<tr><td height='43'><div align='left'>"+"<input type='checkbox' name='answer"+t+"' value='F'/>"+" F ."+F+"</div></td></tr>");
}else{

}
%>
<tr>
<td height="43">&nbsp;</td>
</tr>

</table>
=-------------------------
这是显示多选题的表格,希望你看了能有点收获

[此贴子已经被作者于2006-9-19 11:52:33编辑过]

#7
xhdwell2006-09-19 13:13
楼上的只是定义了checkbox选项,但并没有说怎么判断是否选中啊~~
#8
z1089799792006-09-19 14:05

每一个题的副选框的name值最好一样
再后面的页面里可以用一个数组接收这些值

#9
xhdwell2006-09-19 14:07

能够简单的写一下吗?谢谢了~

#10
可可℃乐2006-09-19 15:16
我只是粘了一些显示的代码。
计算分数的逻辑要靠你自己完成的
#11
飘飘叶子2006-09-19 15:34
[CODE]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">

<SCRIPT LANGUAGE="JavaScript">
<!--
function ischeck(checkb) {
if(checkb.checked)
{
alert(checkb.value);
}
}
-->
</SCRIPT>
</HEAD>

<BODY>
<INPUT TYPE="checkbox" NAME="abc" value="One is Click" onclick="ischeck(this)">
<INPUT TYPE="checkbox" NAME="abc" value="Two is Click" onclick="ischeck(this)">
<INPUT TYPE="checkbox" NAME="abc" value="Three is Click" onclick="ischeck(this)">
<INPUT TYPE="checkbox" NAME="abc" value="Four is Click" onclick="ischeck(this)">
<INPUT TYPE="checkbox" NAME="abc" value="Five is Click" onclick="ischeck(this)">
</BODY>
</HTML>
[/CODE]

以上是用javascript写的

#12
球球2006-09-19 15:36
//checkbox中的name要一样,value为你要选择的值.
<p> <font color="#0066FF" size="5" face="隶书">你是怎样知道这个网站的 ?</font>
<p>
<input type="checkbox" name="ah" value="报纸">
报纸
<input type="checkbox" name="ah" value="杂志">
杂志
<input type="checkbox" name="ah" value="朋友">
朋友
<input type="checkbox" name="ah" value="网站">
网站</p>


//因为checkbox是个复选框,所以要定义一个数组.取值时用getParameterValues,如果在一个JSP页面中完成,就要先判断是否为null!!
String []zd=request.getParameterValues("ah");
for(int i=0;i<zd.length;i++)
{
out.println(zd[i]+" ");
}
#13
xhdwell2006-09-19 16:20

非常感谢楼上的球球~~~这正是我要的答案!
不过我还有点小问题想问下,是不是没有选中的checkbox值一定为NULL呢?
还有你说的在一个页面完成要判断NULL,那如果不在同一个页面呢?

#14
xhdwell2006-09-19 16:38

我要哭了~~本以为问题解决了~~没想到还是有问题!大家帮我找下好吗~
<input name="question5" type="checkbox" value="check1">
Response.Write
<br>
<input name="question5" type="checkbox" value="check2">
document.write
<br>
<input name="question5" type="checkbox" value="check3">
Application(""s1"") = 0
<br>
<input name="question5" type="checkbox" value="check4">
var I = I + 1
<br>
这里我定义了1组4个checkbox,接着我在第2个JSP页面来接受这组checkbox。
int num=0;
String [] zd=request.getParameterValues("question5");
for(int i=0;i<zd.length;i++)
{
out.println(zd[i]+" ");
}

if(
(zd[0]==null||zd[0].trim().equals(""))
&& (zd[1]==null||zd[1].trim().equals(""))
&& zd[2].equals("check3")
&& zd[3].equals("check4")
)
num=num+30;

out.println(num+"");
num=0;
如果我没错的话,只有当我选中第3个和第4个checkbox时, out.println(num+"");才会输出30,但实际的结果却是无论我选中哪个选项,结果都为0,这是什么原因呢?

#15
球球2006-09-20 00:12

你的意思是选中了3和4就num=30,没有就为0?
首先你要搞清楚zd.length是怎么回事,当你选择了一个,那么zd.length的长度就是zd[0],选择了二个zd.length的长度就是zd[0],zd[1]!!!
所以这里的if应该是if(zd[0].equals("check3")&& zd[1].equals("check4"))

[此贴子已经被作者于2006-9-20 1:30:10编辑过]

#16
球球2006-09-20 02:06

<%
int num=0;
if(request.getParameterValues("question5")==null){
out.println(num);
}
else{
String [] zd=request.getParameterValues("question5");
for(int i=0;i<zd.length;i++)
{
out.println(zd[i]+" ");
}

if(zd[0].equals("check3")&& zd[1].equals("check4"))
num=num+30;

out.println(num);
}
%>

#17
wind20062006-09-23 22:27

可以通过它的index只来确定是否选中,不妨一试。

1