初级Javascript程序alert窗口无法弹出问题
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<html>  
    <head>  
    <title>测试题</title>  
    <script type="text/javascript">
    function calculate(){
        var Div = document.getElementById("Questions").getElementsByName("ask");
        //var ele = Div.getElementsByName("ask");
        var score=0;
        for(var k=0;k<Div.length; k++)
        {
            if(Div[k].checked)
            score+=Div[k].value;
        }
        switch(score)
        {
            case 0:case 1:case 2:case 4:case 5:case 6:
            case 7:case 8:case 9:case 10:case 11:case 12:
            case 13:case 14:case 15:case 16:case 17:
            alert("您得到了"+score+"分");
            break;
        }
    }
    </script>
    </head>  

    <body>
    <h1>公民科学素质知识测试题</h1>

    您打开此题目时的计算机时间为

    <script type="text/javascript"> 
    var time = new Date();
    var t = time.getHours()+ ":"+ time.getMinutes() + ":" +time.getSeconds();
    document.write(t);
    </script>
    </br>
    <script>
    var time=new Date();
    if(time.getHours()<=12 && time.getHours()>=0)
    document.write("上午好!");
    else if(time.getHours()<18 && time.getHours()>12)
    document.write("下午好!");
    else if(time.getHours()>=18 && time.getHours()<=23)
    document.write("晚上好!");
    </script>//这里是本机时间的显示程序

    欢迎您进行本次测试。</br>

    <form id="Questions" method="get">
    <br>1.地球绕太阳公转一圈的时间是()</br>
    <input type ="checkbox" name="ask" value="0"/>A.1天</br>
    <input type ="checkbox" name="ask" value="1"/>B.1年</br>
    <input type ="checkbox" name="ask" value="0"/>C.1.9年</br>

    <br>2.地球自转一圈的时间就是()</br>
    <input type ="checkbox" name="ask" value="0"/>A.24小时37分</br>
    <input type ="checkbox" name="ask" value="0"/>B.1年</br>
    <input type ="checkbox" name="ask" value="1"/>C.1天</br>

    <br>3.请告诉我们您的联系方式,以方便我们向您反馈<br/>
    手机号码:
    <input type="text" name="phone" size="20" maxlength="20" />
    <br />
    电子邮箱:    
    <input type="text" name="mail"  size="20" maxlength="20" />
    <br/>
    <input type="button" value="提交并查看分数" onclick="calculate()"/>
    </form>
    </body>  
</html>

各位大神,我们刚刚接触到了javascript和html语言,由于课程时间短,所以基本靠自学。
学校出题要求制作一个网页,做一个在线考试,显示电脑时间并在用户点击submit按钮后利用alert框显示出用户的最终成绩。
我在网上已经搜索了多种方法,浏览器是正常的,能够弹出消息框的,所以应该是程序的问题,所以想让各位忙里偷闲看一下哪里出现了问题,谢谢各位了。

4个回答

错误有点多,。。。
1.for循环中的第一个分号是中文字符
2.case16 17 后面也是中文字符,
3.score=score + parseInt(Div[k].value);,没有把字符转为数字再加,得到的是字符串,
4.var Div = document.getElementsByName("ask")你那个语法错误,一开始选择的是form表单对象,
但是这个对象不包含document.getElementsByName这个方法,直接选
5.switch可以删掉,完全没有用,有alert就够了
6.你的br 标签不规范,不需要闭合/br>这个是多余的
7.你的选项应该是单选,type="radio";
8.两个选项之间不能有相同的name属性,两个ask系统会认为这是同一个选择题。
9.路漫漫而修远兮,你该来个IDE开发环境了,Hbulider,免费的不要破解什么的,好好学吧

qq_29594393
当作看不见 回复baidu_36059673: 用IDE开个语法验证,这些小错误就不会有了,其他的需要时间
大约 3 年之前 回复
baidu_36059673
baidu_36059673 感谢您的耐心指导,非常抱歉劳烦您指出1、2、5这样的低级错误。
大约 3 年之前 回复

是你的程序有问题,你运行你的页面,然后按F12进入调试模式,会出现这样一个界面图片说明

而且你获取元素的方法也有问题, var Div = document.getElementById("Questions").getElementsByName("ask"); 没有人这么写的,如果想要得到选项的值的话,应该让两个问题的name不同,例如name=ask1,name=ask2 这样分开获取更好。

baidu_36059673
baidu_36059673 感谢您的提醒!
大约 3 年之前 回复

http://ask.csdn.net/questions/327669
这个题目错误是 score += Div[k].value; 你这样加的话肯定错误的 改成 score += parseInt(Div[k].value);
字符串类型转化为整型之后才能做运算 还有你的整体页面结构写法不对!

正确的页面代码为:
图片说明
图片说明
图片说明

baidu_36059673
baidu_36059673 谢谢您!您用红色标注的地方确实是代码的重要问题所在。另外有关您所说的页面结构问题我会重新看一下。辛苦您了。
大约 3 年之前 回复

楼上分析的很认真呀。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!