getElementsByName("R4"),统计这个数组有多少个checked=true
<2就不计分

解决方案 »

  1.   

    看了一下,楼主根据每个单选和多选的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>