javascript - Javascript GPA计算器打印问题
问题描述
我的代码(如下所示)似乎不起作用,我不知道为什么。当我在浏览器中打开网页时,我可以接收用户输入的积分(1、2、3、4、5)和分数(A、B、C、D、F),但我无法在输入表下显示计算出的 GPA。计算或打印是否有错误?我查找了类似的问题,但方法和问题似乎与我的不同。我在这方面还很陌生,我真的很感激一些关于我哪里出错的帮助。
编辑:根据评论进行了一些更改,但它仍然不起作用
代码如下:
<html>
<head>
<meta charset= "utf-8">
<title > GPA Calculator </title>
<script type="text/javascript">
function gpa(){
var A,B,C,D,F;
var score = [A,B,C,D,F];
var credit = [4.0,3.0,2.0,1.0,0.0];
var inputCredit = [document.calcForm.credit1.value, document.calcForm.credit2.value, document.calcForm.credit3.value,
document.calcForm.credit4.value, document.calcForm.credit5.value];
var inputScore = [document.calcForm.score1.value, document.calcForm.score2.value, document.calcForm.score3.value,
document.calcForm.score4.value, document.calcForm.score5.value];
var sumcr = 0;
var sumsc = 0;
var validity =0;
for(var j=0; j<5; j++){
for(var i=0; i<5;i++){
if(inputScore[i] == score[j]){
sumsc += credit[j] * inputCredit[i];
sumcr += inputCredit[j];
}
}
}
var gpa2 = sumsc/sumcr;
return gpa2;
}
</script>
</head>
<body>
.....
<script type="text/javascript">GPA: document.write(gpa());</script>
</body>
</html>
解决方案
我不想只给你答案,但我想如果我给你这个,你可以看到你尝试做的方式和一个工作示例之间的区别。它甚至可以揭示您不知道的 JS 的某些方面。在大多数情况下,我将把样式留给你 :)
<!DOCTYPE html>
<html>
<head>
<title> GPA Calculator </title>
<script type="text/javascript">
function gpa(e) {
e.preventDefault()
const scores = document.getElementsByName("score")
const credits = []
scores.forEach(score => credits.push(Number(score.value)))
const d = document.getElementById("result")
d.innerText = "GPA: " + credits.reduce((acc, x) => {
return acc + x
})/scores.length;
}
</script>
</head>
<body bgcolor = "#CCEEFF" >
<h1 align ="center">GPA Calculator</h1>
<form name ="calcForm" align="center">
<div style="display: inline-block; width: 100%; padding-bottom: 10px">
<label for="score" style="width: 50px">Calculus 2</label>
<select name="score">
<option value="" disabled selected>Select</option>
<option value="4.0">A</option>
<option value="3.0">B</option>
<option value="2.0">C</option>
<option value="1.0">D</option>
<option value="0.0">F</option>
</select>
</div>
<div style="display: inline-block; width: 100%; padding-bottom: 10px">
<label for="score" style="width: 50px">Physics 2</label>
<select name="score">
<option value="" disabled selected>Select</option>
<option value="4.0">A</option>
<option value="3.0">B</option>
<option value="2.0">C</option>
<option value="1.0">D</option>
<option value="0.0">F</option>
</select>
</div>
<div style="display: inline-block; width: 100%; padding-bottom: 10px">
<label for="score">History 3</label>
<select name="score">
<option value="" disabled selected>Select</option>
<option value="4.0">A</option>
<option value="3.0">B</option>
<option value="2.0">C</option>
<option value="1.0">D</option>
<option value="0.0">F</option>
</select>
</div>
<div style="display: inline-block; width: 100%; padding-bottom: 10px">
<label for="score">Chemistry 2</label>
<select name="score">
<option value="" disabled selected>Select</option>
<option value="4.0">A</option>
<option value="3.0">B</option>
<option value="2.0">C</option>
<option value="1.0">D</option>
<option value="0.0">F</option>
</select>
</div>
<div style="display: inline-block; width: 100%; padding-bottom: 10px">
<label for="score">Biology 3</label>
<select name="score">
<option value="" disabled selected>Select</option>
<option value="4.0">A</option>
<option value="3.0">B</option>
<option value="2.0">C</option>
<option value="1.0">D</option>
<option value="0.0">F</option>
</select>
</div>
<button type="click" onclick ="gpa(event)">Calculate GPA</button>
</form>
<div id="result" align="center" style="margin-top: 5px">GPA: </div>
</body>
</html>
推荐阅读
- powershell - 从实际变量中获取 powershell 变量名
- python - 机器学习奖励人为封顶
- php - 解析错误:语法错误,第 48 行 php 中的文件意外结束
- aws-lambda - 自动化 SQL 查询以在 Redshift 上发送电子邮件
- c - 这段代码中的 else 部分是什么意思?
- python - 在多对多中间类/模型Django中返回非空字段
- c - 从我的动态列表中删除一个节点
- php - 在 MySql 中创建具有许多外键的大表
- android - Kotlin Android Shared Preferences - lateinit 属性首选项尚未初始化
- php - 基于应用程序(独立于会话)的计数器,按对服务器执行的顺序计算查询