日期:2014-05-16  浏览次数:20329 次

求1个JS多选题的做法,有高手没,请帮解决下,里面有俺的思路
比如多择题答案是A,B

当值是A的时候,弹出窗口50分

如果是A,B的时候弹出窗口100分

当是A,C的时候弹出窗口是0分

比如多择题答案是A,B,C

当值是A,C的时候,弹出窗口50分
当值是C的时候,弹出窗口50分

如果是A,B,C的时候弹出窗口100分

当是A,D的时候弹出窗口是0分


function aa()
 {
var tt=A,B;//测试答案tt
var mm=A,B,D;//系统答案
//下面写处理方法

alert("");//显示分数

}

我目前的想法是如果完全一致100分
如果不一致,进行拆分,循环判断单个,如果里面的单个都存在答案里,则显示50分
如果里面有1个不存在,显示0分,
不知道JS怎么写

初次学JS,请高手帮忙

------解决方案--------------------
引用:
比如多择题答案是A,B

当值是A的时候,弹出窗口50分

如果是A,B的时候弹出窗口100分

当是A,C的时候弹出窗口是0分

比如多择题答案是A,B,C

当值是A,C的时候,弹出窗口50分
当值是C的时候,弹出窗口50分

如果是A,B,C的时候弹出窗口100分

当是A,D的时候弹出窗口是0分


function aa()
……

试试吧,差不多可以满足要求

function isInRightAnswer(str,rightAnswer)
{
return rightAnswer.join().indexOf(str)==-1? false:true;
}
function getScore(answer,rightAnswer,fullScore)
{
for(var count=0;count<answer.length;count++)
{
if(!isInRightAnswer(answer[count], rightAnswer))
{
return 0;
}
}
return fullScore*(answer.length==rightAnswer.length? 1:0.5);
}
console.log(getScore(['a','c'],['a','b','c'],100));
console.log(getScore(['a','c'],['a','b','d'],100));
console.log(getScore(['a','b','c'],['a','b','c'],100));

------解决方案--------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
var a=[];
var x=0;
function setAnswear(){
var answear=document.getElementById("test").value.toLowerCase();
answear=answear.replace(/^\s+/,"").replace(/\s+$/,"");
answear=answear.split(/\W+/);
x=answear.length;
a=[];
for(var i in answear){
a[answear[i]]=1;
}
document.getElementById("aa").innerHTML=answear;
document.getElementById("test").value="";
}
function getScore(){
var b=true;
var l=0;
var ax=document.getElementsByName("checks");
for(var i=0;i<ax.length;i++){
if(ax[i].checked){
if(a[ax[i].value]!=1){
b=false;
break;
}else{
l++;
}
}
}
if(!b){
alert(0);
}else if(l!=x){
alert(50);
}else{
alert(100);
}
}
</script>
</head>

<body>
<input type="checkbox" name="checks" value="a">a<br/>
<input type="checkbox" name="checks" value="b">b<br/>
<input type="checkbox" name="checks" value="c">c<br/>
<input type="checkbox" name="checks" value="d">d<br/>
<input type="button" value="提交" onclick="getScore()">
<input type="text" id="test"><input type="button" value="设置正确答案" onclick="setAnswear()">
<div id="aa"></div>
</body