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

刚学js,有个多选题的作业,谁来帮我看看思路对不对
老师给的作业题是这样的

多选题 选项为 A B C D
判分依据 1.选项全对为满分 2.选项中包括错误答案为零分 3.答案没选全为一半分

我的思路是这样的

//var正确答案为ABC
//事件1 answer"包含D"时 document.write返回信息为"得到0分"
//事件2 answer"为ABC"时 document.write返回信息为"得到100分"
//事件3 answer"不为ABC" 且 "不包含D" document.write返回信息为"得到50分"

现在我遇到的困难是
  
事件1与事件3如何运用逻辑?

另外 我的思路有问题吗?


------解决方案--------------------
HTML code

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="gb2312" />
        <title></title>
    </head>
    <body>
        比如 正确答案是 bcd <br />
        A:<input type="checkbox" name="test" value="a" />
        B:<input type="checkbox" name="test" value="b" />
        C:<input type="checkbox" name="test" value="c" />
        D:<input type="checkbox" name="test" value="d" />
        <button id="btn">显示得分</button>
        <script>
            function $(el){
                return typeof el == 'string' ? document.getElementById(el) : el;
            }
            var a = 'bcd'; //正确答案
            var objs = document.getElementsByName('test');
            $('btn').onclick = function(){
                var re = [];
                for( var i = 0, len = objs.length; i < len; i++ ){
                    if( objs[i].checked ){
                        if( a.indexOf( objs[i].value ) == -1 ){
                            alert(0);
                            return;
                        }
                        re.push(objs[i].value);
                    }
                }
                re = re.join('');
                if( re == a ){
                    alert(100);
                }else{
                    alert( 50 );
                }
            }
        </script>
    </body>
</html>