首页 新闻 会员 周边

javascript怎么为多选题自动评分?

0
悬赏园豆:5 [已解决问题] 解决于 2016-06-26 12:16

问题描述:一个有5个选项多选题,正解只有2个,题目的分值是5分。

1、只选中一个正解,得分2分;

2、选中全部正解,得分5分;

3、选中其他选项的同时,选中任意一个错解,得分0分。

Oooooooh的主页 Oooooooh | 初学一级 | 园豆:192
提问于:2016-06-23 10:03
< >
分享
最佳答案
0

5个checkbox 。选中每一个都触发click事件!遍历全部checkbox。已经选中的集合,取得自定义属性data-score 。data-score存放你答案的分数。然后$each这个集合,将每一个的分数相加即可!大致的思路是这样的。

收获园豆:5
大楚打码人 | 老鸟四级 |园豆:4313 | 2016-06-23 10:34

我说一下我对你的回答的理解,你看看对不对:

给每个选项赋值相应的分值,选中一个选项,就把它的分值累加到总分中。

 

可是对于多选题,应该是如果选中错解,这个题就没分了。

举个例子说明一下:假如AC是正解,那么我选AB、AD、ABD这样的带错解的选项组合都是不能得分的。

Oooooooh | 园豆:192 (初学一级) | 2016-06-23 11:19

@Oooooooh: 这问题貌似有些严峻,你去了解一下笛卡尔积,排列组合的问题,需要将所有选中的答案排列出来,再进行判断得分的情况。当然你肯定不是用的AB,肯定ID组合 比方说A的ID是1,B的ID是2,那么选中AB的结果就是 1,2   。得把答案组合出来。组合的时候就该得到每个答案对应的分数。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-06-23 15:41
其他回答(2)
0

使用checkbox,然后遍历选项,通过逻辑判断即可。

CodeHsu | 园豆:5468 (大侠五级) | 2016-06-23 12:00
如果只有几个多选题,我还可以对每个题向下面代码描述的那样挨个进行判断:  

  //第二题答案 var chkValue = ""; var chkObjs = document.getElementsByName("checkbox"); for(var i=0;i<chkObjs.length;i++){ if(chkObjs[i].checked){ chkValue += chkObjs[i].value; } } if(chkValue==""){ if(confirm("第二题未解答!是否解答!")){return false;}; }else if(chkValue=="AB"){ zdf += 10; }

目前,我面临的状况是很多题目,我不能对它们挨个进行这样的判断。
我现在想到的一个方法是:
为问题的每个选项添加一个标识符,标识是正解还是错解,如果选中错解,就得0分。
用这个方法,我有点搞不懂的是,有的多选题有2个正解,有的有3个正解,如果仅选中了部分正解,这个该怎么判断、评分?

支持(0) 反对(0) Oooooooh | 园豆:192 (初学一级) | 2016-06-23 15:46

这个需要你根据分值和选项个数讨论了。做好是通过后端验证,前端给标识不太好。

支持(0) 反对(0) CodeHsu | 园豆:5468 (大侠五级) | 2016-06-23 16:07
0

用 || 和 && 判断不就好了?

小嫩 | 园豆:256 (菜鸟二级) | 2016-06-24 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册