在线测试JAVASCRIPT多选题?????求助!

redok_john 2006-05-20 01:22:02
代码如下:
单选题能正常得分,但是多选题就会出错,下面代码中的多选题的正确答案是全部(ABCDE),但是现在多选题只选一个答案也能计分,郁闷!

我想要得是多选题除是选对了全部正确答案,否则不给分!希望达人们帮帮我,在这儿先谢谢了!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000" >
<tr>
<td bgcolor="#F3F3F3"><FORM style="BACKGROUND-COLOR: #F3F3F3" name=test>
一、 单项选择题 : (共15小题,每小题1分)<BR>
1.自从1840年( )的以后,中国一步一步地变成了一个半殖民地半封建的社会。<BR>
<INPUT type=radio value=1 name=R1>
A、中俄战争了
<INPUT type=radio value=2 name=R1>
B、中法战争
<INPUT type=radio value=t name=R1>
C、鸦片战争<BR>
<span class="ititle14b">2.青年时期的鲁迅积极提倡文学上的( )。 </span><BR> <INPUT type=radio value=t name=R2>
A、摩罗诗派
<INPUT type=radio value=2 name=R2>
B、现实主义
<INPUT type=radio value=3 name=R2>
C、悲剧说<BR>
<span class="ititle14b">3.“避席畏闻文字狱,著书都为稻梁谋”出自龚自珍的( )一诗。</span><BR> <INPUT type=radio value=1 name=R3>
A、《病梅馆记》
<INPUT type=radio value=2 name=R3>
B、《尊隐》
<INPUT type=radio value=t name=R3>
C、《咏史》<BR>

<p align="left"> <span class="timu16">二、多项选择题 :</span> <span class="timu14">(共10小题,每小题1分)</span>
<br>
  1、下列属于康有为的散文有:( ) <br>
  
<INPUT type=checkbox name=R4 value=t>
A、《孔子改制考》
<INPUT type=checkbox name=R4 value=t>
B、《新学伪经考》
<INPUT type=checkbox name=R4 value=t>
C、《请废八股试帖楷法试士改用策论折》, <br>
  
<INPUT type=checkbox name=R4 value=t>
D、《应诏统筹全局折》
<INPUT type=checkbox name=R4 value=t>
E、《诸天讲》就比较有代表性地体现了这一特色。<br>
作答完毕后按:
<INPUT style="BORDER-RIGHT: #082d71 1px solid; BORDER-TOP: #082d71 1px solid; BORDER-LEFT: #082d72 1px solid; COLOR: #082d71; BORDER-BOTTOM: #082d71 1px solid; HEIGHT: 18px" onclick=check() type=button value=交卷 name=B1>
 
您的分数:
<INPUT
style="BORDER-RIGHT: #082d71 1px solid; BORDER-TOP: #082d71 1px solid; BORDER-LEFT: #082d72 1px solid; COLOR: #082d71; BORDER-BOTTOM: #082d71 1px solid; HEIGHT: 18px"
name=res>
 
<INPUT style="BORDER-RIGHT: #082d71 1px solid; BORDER-TOP: #082d71 1px solid; BORDER-LEFT: #082d72 1px solid; COLOR: #082d71; BORDER-BOTTOM: #082d71 1px solid; HEIGHT: 18px" onclick=view() type=button value=看一下自己错误在哪里 name=b2>
<BR>
<INPUT
type=hidden name=wrongs>
</FORM></td>
</tr>
</table>
<SCRIPT language=javascript>
<!--
function check(){
var thistestsubject;
var tmp_string;
int_scr=0;
test.wrongs.value="";
for(i=1;i<=4;i++){
if(eval("test.R"+i+"[0].checked")){thistestsubject="test.R"+i+"[0].value";}else if(eval("test.R"+i+"[1].checked")){
thistestsubject="test.R"+i+"[1].value";}else if(eval("test.R"+i+"[2].checked")){thistestsubject="test.R"+i+"[2].value";}else{thistestsubject="1+1";}
tmp_string=eval(thistestsubject);
//alert(tmp_string);
if (tmp_string=="t"){
int_scr++;
}else{
//alert(test.wrongs.value+"第"+i+"题, ");
test.wrongs.value=test.wrongs.value+"第"+i+"题, ";
}
}
test.res.value=int_scr*1;
}
function view(){
check();
wor=test.wrongs.value;
if(test.res.value<100){alert("您的:"+wor+"题有错误,请您仔细检查!");}else{alert("真好!全答对了!\n感谢主!愿您的灵命在圣灵的引导下日日更深!");}
}
-->
</SCRIPT>
</body>
</html>
...全文
236 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
redok_john 2006-05-21
  • 打赏
  • 举报
回复
还有一个问题,如果我想在做题目的时候只能选择一次,等题目做完或者交完卷之后再能重新再选,又要如何编写代码呢?
redok_john 2006-05-21
  • 打赏
  • 举报
回复
终于搞定,谢谢楼上达人帮忙!是我自己不小心看代码!原来是正确的,呵.
secondflying 2006-05-20
  • 打赏
  • 举报
回复
看了一下,楼主根据每个单选和多选的value来判断该题是否正确。
我改了一下,将单选和多选分开来判断,方法比较笨,呵呵!应该没什么错!
就改了两个函数!加了一点点注释!
function check(){
var thistestsubject;
var tmp_string;
int_scr=0; //用来统计分数的
test.wrongs.value="";

//下面的是对于单选的判断
//3为单选的个数
for(i=1;i<=3;i++){
if(eval("test.R"+i+"[0].checked"))
{thistestsubject="test.R"+i+"[0].value";}
else if(eval("test.R"+i+"[1].checked"))
{thistestsubject="test.R"+i+"[1].value";}
else if(eval("test.R"+i+"[2].checked"))
{thistestsubject="test.R"+i+"[2].value";}
else
{thistestsubject="1+1";}
tmp_string=eval(thistestsubject);
//alert(tmp_string);
if (tmp_string=="t"){
int_scr++;
}
else{
//alert(test.wrongs.value+"第"+i+"题, ");
test.wrongs.value=test.wrongs.value+"第"+i+"题, ";
}
}

//下面是对于多选的判断,i<=4中的4可设定为你多选题的最后一题的题号!
var flag=true;
for(i=4;i<=4;i++){
for(j=0;j<=4;j++){
if(eval("test.R"+i+"["+j+"].checked")
&& (eval("test.R"+i+"["+j+"].value") != "t")) {
flag=false;
test.wrongs.value=test.wrongs.value+"第"+i+"题, ";
break;
}
else if(!eval("test.R"+i+"["+j+"].checked")
&& (eval("test.R"+i+"["+j+"].value") == "t")) {
flag=false;
test.wrongs.value=test.wrongs.value+"第"+i+"题, ";
break;
}
}
if(flag== true){int_scr++;}
}

test.res.value=int_scr*1;
}

function view(){
check();
wor=test.wrongs.value;
//这里暂时先改为4分
if(test.res.value<4){alert("您的:"+wor+"有错误,请您仔细检查!");}
else{alert("真好!全答对了!\n感谢主!愿您的灵命在圣灵的引导下日日更深!");}
}
-->
</SCRIPT>
redok_john 2006-05-20
  • 打赏
  • 举报
回复
楼上达人能不能把完整的代码写下啊,谢谢!
另注:多选题可不至只有R4一题,最少能到R24
redok_john 2006-05-20
  • 打赏
  • 举报
回复
先谢谢楼上达人帮我忙!
我也测试了一下,但是还是错误的,我要求的是正确答案全选了才能得分,楼上达人做的选一个答案还是可以得分啊!
ImN1 2006-05-20
  • 打赏
  • 举报
回复
getElementsByName("R4"),统计这个数组有多少个checked=true
<2就不计分

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧