Reputation: 809
I am new to JS so please be gentle. What is going wrong with this code? I think I am getting the text from several fields, adding them together and showing the result.
<html>
<head>
<script type="text/javascript">
function displaySum()
{
var number1 = parseInt(document.getElementById("number1").text);
var number2 = parseInt(document.getElementById("number2").text);
var number3 = parseInt(document.getElementById("number3").text);
var number4 = parseInt(document.getElementById("number4").text);
var number5 = parseInt(document.getElementById("number5").text);
var sum = eval(number1 + number2 + number3 + number4 + number5);
document.getElementById("showsum").innerHTML=sum;
}
</script>
</head>
<body>
<form>
First Number: <input type="text' name="number1" id="number1" /><br />
<p id="numberOne"></p>
Second Number: <input type="text' name="number2" id="number2" /><br />
Third Number: <input type="text' name="number3" id="number3" /><br />
Fourth Number: <input type="text' name="number4" id="number4" /><br />
Fifth Number: <input type="text' name="number5" id="number5" /><br />
<button type="button" onclick="displaySum()">Display Sum</button>
<p id="showsum"></p>
</form>
</body>
</html>
Upvotes: 2
Views: 1583
Reputation: 270637
Instead of the .text
property, you want .value
. Also, use the second radix parameter to parseInt()
, to guard against accidental incorrect parsing of octal numbers with leading zeros.
var number1 = parseInt(document.getElementById("number1").value, 10);
var number2 = parseInt(document.getElementById("number2").value, 10);
// etc..
// Don't eval(), just add them.
var sum = number1 + number2 + number3 + number4 + number5;
Here's the full solution in action on jsFiddle.
Upvotes: 5