I am currently writing a program in HTML/JavaScript and have been fighting it for several days with hours of research and studying without resolution. My program/site has a table that asks the user to enter their grades for 4 different categories. Then upon clicking the button to calculate the average it is supposed to take those 4 values, and then average them with the correct weighting, and then display the output in a new page division. I am not able to get the output to display and I can’t figure out why.
I apologize if this is dead simple and has been answered before.
JavaScript
x
10
10
1
function calculator() {
2
var grade1 = parseFloat(document.getElementById('homework').value * 0.25);
3
var grade2 = parseFloat(document.getElementById('labs').value * 0.20);
4
var grade3 = parseFloat(document.getElementById('midterm').value * 0.25);
5
var grade4 = parseFloat(document.getElementById('finals').value * 0.30);
6
var total = grade1 + grade2 + grade3 + grade4;
7
8
var display = document.getElementById('outputDiv')
9
display.innerHTML = 'Your Final Grade Is: ';
10
}
JavaScript
1
41
41
1
<p>
2
<h2>Grade Average Calculator</h2>
3
<h3>Please Enter Your Grade For Each Section</h3>
4
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2>
5
6
<tr>
7
<td>Type</td>
8
<td>Weight</td>
9
<td>Grade</td>
10
</tr>
11
12
<tr>
13
<td>Homework</td>
14
<td>25%</td>
15
<td><input type="text" id="homework" size=2 value=""></td>
16
</tr>
17
18
<tr>
19
<td>Labs</td>
20
<td>20%</td>
21
<td><input type="text" id="labs" size=2 value=""></td>
22
</tr>
23
24
<tr>
25
<td>Midterm</td>
26
<td>25%</td>
27
<td><input type="text" id="midterm" size=2 value=""></td>
28
</tr>
29
30
<tr>
31
<td>Final Exam</td>
32
<td>30%</td>
33
<td><input type="text" id="finals" size=2 value=""></td>
34
</tr>
35
36
<br><br>
37
</p>
38
<input type="button" value="Calculate Your Grade" onclick="calculator()">
39
40
<hr>
41
<div id="outputDiv" style="height: 50px; width: 100%;"></div>
Advertisement
Answer
I updated your code to work. The issue being you never displayed the total, you just displayed
‘Your final Grade Is: ‘
JavaScript
1
66
66
1
<html>
2
<head>
3
<title> Grade Average Calculator </title>
4
</head>
5
6
<body>
7
8
<p>
9
<h2>Grade Average Calculator</h2>
10
<h3>Please Enter Your Grade For Each Section</h3>
11
<TABLE BORDER=2 CELLSPACING=2 CELLPADDING=2>
12
13
<tr>
14
<td>Type</td>
15
<td>Weight</td>
16
<td>Grade</td>
17
</tr>
18
19
<tr>
20
<td>Homework</td>
21
<td>25%</td>
22
<td><input type="text" id="homework" size=2 value=""></td>
23
</tr>
24
25
<tr>
26
<td>Labs</td>
27
<td>20%</td>
28
<td><input type="text" id="labs" size=2 value=""></td>
29
</tr>
30
31
<tr>
32
<td>Midterm</td>
33
<td>25%</td>
34
<td><input type="text" id="midterm" size=2 value=""></td>
35
</tr>
36
37
<tr>
38
<td>Final Exam</td>
39
<td>30%</td>
40
<td><input type="text" id="finals" size=2 value=""></td>
41
</tr>
42
43
<br><br>
44
</p>
45
<input type="button" value="Calculate Your Grade"
46
onclick="calculator()">
47
48
<hr>
49
<div id="outputDiv" style="height: 50px; width: 100%;"></div>
50
51
<script type="text/javascript">
52
53
function calculator()
54
{
55
var grade1=parseFloat(document.getElementById('homework').value*0.25);
56
var grade2=parseFloat(document.getElementById('labs').value*0.20);
57
var grade3=parseFloat(document.getElementById('midterm').value*0.25);
58
var grade4=parseFloat(document.getElementById('finals').value*0.30);
59
var total=grade1+grade2+grade3+grade4;
60
61
var display=document.getElementById('outputDiv');
62
63
display.innerHTML='Your Final Grade Is: ' +total;
64
}
65
</script>
66