比如多择题答案是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,请高手帮忙

解决方案 »

  1.   

    试试吧,差不多可以满足要求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));
      

  2.   

    <!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>
    </html>
      

  3.   


    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/JavaScript">
    //每次点击测试按钮后需刷新页面重新开始,否则会出现错误(本题正确答案A,B)
    $(function(){
    var a="A,B";
    var b=a.split(",");
    var j=0,k=0;
    $("#abv").click(function(){
    $(":checkbox").each(function(){
    if(this.checked){
    k++;
    for(var i=0;i<b.length;i++){
    if($(this).attr("value")==b[i]){
    j++;
    }
    }
    }
    });
    if(j==b.length && j==k){
    alert(100+"分");
    }else{
    if(j==0 && k==0){
    alert("没有选择选项");
    }else{
    if(j==k){
    alert(50+"分");
    }else{
    alert(0+"分");
    }
    }
    } });
    })
    </script>
    <input type="button" id="abv" value="测试用按钮" />
    <div id="div1">
    <input type="checkbox" id="checkbox1" value="A" />A
    <input type="checkbox" id="checkbox2" value="B" />B
    <input type="checkbox" id="checkbox3" value="C" />C
    <input type="checkbox" id="checkbox4" value="D" />D
    </div>
      

  4.   

    function aa(){//var tt=A,B;//测试答案tt
    //var mm=A,B,D;//系统答案var tt=new Array("A","B");
    var mm=["A","B","D"];
    //tt.sort();
    //mm.sort();
    //下面写处理方法var ttLen=tt.length;
    var mmLen=mm.length;var result=0;if(mmLen>=ttLen)
    {
    var j=0;//下次查找的开始位置

    for(var i=0;i<ttLen;i++){
    if((j=mm.indexOf(tt[i],j)+1)<1){  break;}
    }

    if(i==ttLen){
    if(i==mmLen){
    result=100;
    }
    else {
    result=50;
    }
    }

    }
    alert(result);//显示分数}aa();
      

  5.   

    谢谢你们好,俺也写出来啦!!//和系统答案一样的时候
    if(sysanswer==myanswer)
    {
    score=score;
    }
    //和系统答案不一样的时候
    if(sysanswer!=myanswer&&myanswer!="")
    {
    str=myanswer;
    var strs= new Array(); //定义一数组
    strs=str.split(","); //字符分割 
    for (i=0;i<strs.length ;i++ )    
        {    
    var m = sysanswer.indexOf(strs[i]);
    if(sysanswer.indexOf(strs[i])<0)
    {
    score="0";
    break;
    }
    else{
    score=score/2;
    }
        } 
    }