这是我的一行选项.titleNum 为自增变量,value传的是A项的答案, <tr>
<td>
A:<input type="radio" name="<%=titleNum%>" value="<%=Ascore%>"><%=A%>
</td>
<td>
B:<input type="radio" name="<%=titleNum%>" value="<%=Bscore%>"><%=B%>
</td>
</tr>
<tr>
<td>
C:<input type="radio" name="<%=titleNum%>" value="<%=Cscore%>"><%=C%>
</td>
<td>
D:<input type="radio" name="<%=titleNum%>" value="<%=Dscore%>"><%=D%>
</td>
</tr>在结果叶面中
for(int i=0;i<result.length;i++){
result[i] = request.getParameter((i+1) + "");
}
请问比如选A就直接得到了A的Score ,怎么知道用户选项了A项呢?
<td>
A:<input type="radio" name="<%=titleNum%>" value="<%=Ascore%>"><%=A%>
</td>
<td>
B:<input type="radio" name="<%=titleNum%>" value="<%=Bscore%>"><%=B%>
</td>
</tr>
<tr>
<td>
C:<input type="radio" name="<%=titleNum%>" value="<%=Cscore%>"><%=C%>
</td>
<td>
D:<input type="radio" name="<%=titleNum%>" value="<%=Dscore%>"><%=D%>
</td>
</tr>在结果叶面中
for(int i=0;i<result.length;i++){
result[i] = request.getParameter((i+1) + "");
}
请问比如选A就直接得到了A的Score ,怎么知道用户选项了A项呢?
请详细点好吗?
哪全场就没人考到满分了。LZ这不是逼人犯错吧?
------你把四个项都初始为没被选中就行了啊
但是怎么知道用户全部选了某一项呢?比如说全选了A,或全选了B项.
<tr>
<td>
A:<input type="radio" name="<%=titleNum%>" value="<%=Ascore%>" Checked><%=A%>
</td>
<td>
B:<input type="radio" name="<%=titleNum%>" value="<%=Bscore%>"><%=B%>
</td>
</tr>
<tr>
<td>
C:<input type="radio" name="<%=titleNum%>" value="<%=Cscore%>"><%=C%>
</td>
<td>
D:<input type="radio" name="<%=titleNum%>" value="<%=Dscore%>"><%=D%>
</td>
</tr>husl(呼哨) 你是什么意思呢?好像没有理解我的意思哟.
susu_0807(苏苏) fffddd(杀我者死) :不是我逼考生,是经理逼我.
方法思想是写一校验函数,在用户答完题提交时进行校验。
该函数大致算法如下:
设置一变量数组var total=new Array(4);用于记录用户选择A、B、C、D的个数。
对于页面内的每一道题,如果用户选择的是A则变量total[0]+1,B则total[1]+1,C则total[2]+1,D则total[3]+1。最后数组中如果有一个元素的值等于题数,则用户全部选择了某一选项。下面是一个简单的实现代码,其中length代表题的总个数,代码由瑕疵,仅供参考:)<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<script language="javascript">
function total()
{
var total = new Array(4);
for (var n = 0;n<4;n++)
{
total[n] = 0;
}
var length = 2;
for(var i = 1;i<=length;i++)
{
for(var j = 0;j<4;j++)
{
if(document.getElementsByName(""+i)[j].checked)
{
total[j]+=1;
}
}
}
alert("total="+total);
for(var m = 0;m<4;m++)
{
if(total[m] == length)
{
alert("输入不合法!");
return false;
}
}
alert("校验成功!");
return true;
}
</script>
</head><body>
<form name="form1">
<table name="tab" id="tab">
<tr>
<td>A:<input type="radio" name="1" value="1"/>A Value</td>
<td>B:<input type="radio" name="1" value="2"/>B Value</td>
<td>C:<input type="radio" name="1" value="3"/>C Value</td>
<td>D:<input type="radio" name="1" value="4"/>D Value</td>
</tr>
<tr>
<td>A:<input type="radio" name="2" value="1"/>A Value</td>
<td>B:<input type="radio" name="2" value="2"/>B Value</td>
<td>C:<input type="radio" name="2" value="3"/>C Value</td>
<td>D:<input type="radio" name="2" value="4"/>D Value</td>
</tr>
<tr><td align="center" colspan="4"><input type=button onclick="total()" value="forTotal"/></td></tr>
</table>
</form>
</body></html>
int count = 0;
String type1 = (String)session.getAttribute("type");
System.out.println("type:" + type1);
try{
String sql = "select count(id) as max from question where type = '"+type1+"'";
ResultSet rs = con.query(sql); rs.next();
count = rs.getInt("max");
rs.close();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("count:" + count);
%>
这里得到了题目总数,
可是在脚本中
<script language="javascript">
function total()
{
var total = new Array(4);
for (var n = 0;n<4;n++)
{
total[n] = 0;
}
var length = count;//这里好像不行啊.
for(var i = 1;i<=length;i++)
{
for(var j = 0;j<4;j++)
{
if(document.getElementsByName(""+i)[j].checked)
{
total[j]+=1;
}
}
}
alert("total="+total);
for(var m = 0;m<4;m++)
{
if(total[m] == length)
{
alert("输入不合法!");
return false;
}
}
alert("校验成功!");
return true;
}
</script>
还有一个问题
不能漏答,我在你的代码上加上
for(var m = 0;m<4;m++)
{
if(total[m] == length)
{
alert("无效作答!");
return false;
}
if(total[m]==0){ //防止漏答
alert("无效作答");
return false; }
}
问题是这样,先漏答,点提钮,出现无效作答,但全部答上,仍是无效作答
a=1, b=2, c=4, d=8???
你写的这段防止漏答得代码不会起作用。
if(total[m]==0){ //防止漏答
alert("无效作答");
return false;
}
这段代码是用来检验A、B、C、D四个选项是否都被选过。例如说,如果在所有的题中A重未被选过,那这段代码就会执行(total[0]==0),返回false。
如果想防止漏答可以有两种方法,一是在页面代码中加入默认项,你可以使A或其他选项是默认选中的。
二可以把答案中A、B、C、D的个数相加,如果等于题数,就是没有漏答,如果小于提数就是有漏答。
<!--防止漏答-->if(total[0]+total[1]+total[2]+total[3] < length)
{
alert("有漏答题目!");
return false;
}
}