Javascript 创建测验,但Java不会检查答案

Javascript 创建测验,但Java不会检查答案,javascript,html,Javascript,Html,我试图做一个测试,但由于某些原因,代码我必须检查答案,并返回数字等级和字母等级不会返回任何东西。我已经尝试解决这个问题几个小时了,但我不知道问题出在哪里。按钮是否未连接到函数,或者函数是否由于格式错误而无法计算答案 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Quiz</title> </hea

我试图做一个测试,但由于某些原因,代码我必须检查答案,并返回数字等级和字母等级不会返回任何东西。我已经尝试解决这个问题几个小时了,但我不知道问题出在哪里。按钮是否未连接到函数,或者函数是否由于格式错误而无法计算答案

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quiz</title>
</head>

<body>
<h1>CIS44 Quiz</h1>
<form name="questions">
<p>
Question #1: You can test a condition with an if...else statement or with a if...elseif...else statement.
</p>
<input type="radio" name="ques11">True<br />
<input type="radio" name="ques12">False<br />
<p>
Question #2: XHTML stands for Extensible Hypertext Markup Language
statement.
</p>
<input type="radio" name="ques21">True<br />
<input type="radio" name="ques22">False<br />
<p>
Question #3: A web page can contain the following:
</p>
<input type="checkbox" name = "H1">A.) HTML<br />
<input type="checkbox" name = "H2">B.) XHTML<br />
<input type="checkbox" name = "H3">C.) CSS<br />
<input type="checkbox" name = "H4">D.) JavaScript<br />
<p>
Question #4: Which of the following is used to include JavaScript in HTML or XHTML?
</p>
<input type="radio" name="ques41">script="text:javascript"<br />
<input type="radio" name="ques42">script style="text/javascript"<br />
<input type="radio" name="ques43">script type="text/javascript"<br />
<input type="radio" name="ques44">script type="JS"<br />
<p>
Question #5: Which course inclodes PHP and databases with MySQL?
</p>
<input type="radio" name="ques51">CIS120<br />
<input type="radio" name="ques52">CIS122<br />
<input type="radio" name="ques53">CIS159<br />
<input type="radio" name="ques54">CIS156<br />
</form>
<b>
<input type="button" name="toClick" value="Calculate Your Grade" onclick="numericGrade.value=calcAverage(questions)"> 

<input type="button" onclick="calGrade(yourAvg)" value="Show Letter Grade">
</p><i>Your numerical grade on the quiz is:</i> <input type="text" name="numericGrade">

<i>Your letter grade on the quiz is:</i></b> <input type="text" name="letterGrade"></b>
<script type="text/javascript">
var yourAvg=0;
var yourGrade="";

function calcAverage(questions){
    yourAvg=0;
    if (questions.ques11[0].checked == true){
        yourAvg=yourAvg +20;
    }
    if (questions.ques21[0].checked == true){
        yourAvg=yourAvg +20;
    }
    if (questions.H1.checked == true && questions.H2.checked && questions.H3.checked && questions.H4.checked){
        yourAvg=yourAvg +20;
    }
    if (questions.ques43[0].checked == true){
        yourAvg=yourAvg +20;
    }
    if (questions.ques53[0].checked == true){
        yourAvg=yourAvg +20;
    }
    return (yourAvg)
}
function calGrade(yourAvg){
if (yourAvg>=90){
        yourGrade="A";
        questions.letterGrade.value=yourGrade;
    }
    else if (yourAvg>=80){
        yourGrade="B";
        questions.letterGrade.value=yourGrade;
    }
    else if (yourAvg>=70){
        yourGrade="C";
        questions.letterGrade.value=yourGrade;
    }
    else if (yourAvg>=65){
        yourGrade="D";
        questions.letterGrade.value=yourGrade;
    }
    else if (yourAvg<65){
        yourGrade="F";
        questions.letterGrade.value=yourGrade;
    }
}
</script>
</body>
</html>

测验
CIS44测验

问题1:您可以使用if…else语句或if…elseif…else语句测试条件。

正确

问题#2:XHTML代表可扩展超文本标记语言 陈述

正确

问题#3:网页可以包含以下内容:

A.)HTML
B.)XHTML
C.)CSS
D.)JavaScript
问题#4:以下哪项用于在HTML或XHTML中包含JavaScript?

script=“text:javascript”
script style=“text/javascript”
script type=“text/javascript”
script type=“JS”
问题#5:哪门课程包括PHP和MySQL数据库?

CIS120
CIS122
CIS159
CIS156

您在测验中的数字分数为: 你在测验中的字母分数是: var-yourAvg=0; var yourGrade=“”; 函数平均值(问题){ yourAvg=0; if(questions.ques11[0]。选中==true){ yourAvg=yourAvg+20; } if(questions.ques21[0]。选中==true){ yourAvg=yourAvg+20; } if(questions.H1.checked==true&&questions.H2.checked&&questions.H3.checked&&questions.H4.checked){ yourAvg=yourAvg+20; } if(questions.ques43[0]。checked==true){ yourAvg=yourAvg+20; } if(questions.ques53[0]。选中==true){ yourAvg=yourAvg+20; } 返回(平均值) } 函数calGrade(平均值){ 如果(平均值>=90){ yourGrade=“A”; 问题。letterGrade.value=你的成绩; } 否则,如果(平均值>=80){ yourGrade=“B”; 问题。letterGrade.value=你的成绩; } 否则,如果(平均值>=70){ yourGrade=“C”; 问题。letterGrade.value=你的成绩; } 否则,如果(平均值>=65){ yourGrade=“D”; 问题。letterGrade.value=你的成绩; }
else if(yourAvg查看此示例代码以了解一些说明。 您遇到的一些问题: 1) 您的代码没有正确的html绑定到处理程序函数。 2) 您的代码无法获取表单中的控件。 3) 您的代码将输出字段视为表单的一部分,而不是表单的一部分

希望它能给你进一步的指导

var yourAvg=0;
var yourGrade=“”;
var letterGrade=document.getElementById('letGrade');
var numGrade=document.getElementById('numGrade');
函数平均值(问题){
yourAvg=0;
if(questions.elements.ques11.checked==true){
yourAvg=yourAvg+20;
}
if(questions.elements.ques21.checked==true){
yourAvg=yourAvg+20;
}
if(questions.elements.H1.checked==true&&questions.elements.H2.checked&&questions.elements.H3.checked&&questions.elements.H4.checked){
yourAvg=yourAvg+20;
}
if(questions.elements.ques43.checked==true){
yourAvg=yourAvg+20;
}
if(questions.elements.ques53.checked==true){
yourAvg=yourAvg+20;
}
numGrade.value=yourAvg;
返回(平均值);
}
函数calGrade(平均值){
如果(平均值>=90){
yourGrade=“A”;
letterGrade.value=您的等级;
}
否则,如果(平均值>=80){
yourGrade=“B”;
letterGrade.value=您的等级;
}
否则,如果(平均值>=70){
yourGrade=“C”;
letterGrade.value=您的等级;
}
否则,如果(平均值>=65){
yourGrade=“D”;
letterGrade.value=您的等级;
}
否则,如果(您的平均值<65){
yourGrade=“F”;
letterGrade.value=您的等级;
}
}
CIS44测验

问题1:您可以使用if…else语句或if…elseif…else语句测试条件。

正确

问题#2:XHTML代表可扩展超文本标记语言 陈述

正确

问题#3:网页可以包含以下内容:

A.)HTML
B.)XHTML
C.)CSS
D.)JavaScript
问题#4:以下哪项用于在HTML或XHTML中包含JavaScript?

script=“text:javascript”
script style=“text/javascript”
script type=“text/javascript”
script type=“JS”
问题#5:哪门课程包括PHP和MySQL数据库?

CIS120
CIS122
CIS159
CIS156

您在测验中的数字分数为:
您在测验中的字母分数是:
您的表单和javascript中有错误。我已将其清理干净。大多数情况下,您需要将“questions”变量绑定到表单,以便它可以使用输入变量

你应该将组添加到单选按钮中,这样人们就不能同时选择真/假。快乐编码

yourAvg=0;//全局变量
yourGrade=“;//全局变量
questions={};//全局变量。
//将表单绑定到全局变量
var form=document.getElementsByName('questions')[0];
对于(变量i=0,len=form.length;i=90){
yourGrade=“A”;
问题。letterGrade.value=你的成绩;
}
否则,如果(平均值>=80){
yourGrade=“B”;
问题。letterGrade.value=你的成绩;
}
否则,如果(平均值>=70){
yourGrade=“C”;
问题。letterGrade.value=你的成绩;
}
否则,如果(平均值>=65){
yourGrade=“D”;
问题。字母等级。