Reputation: 9146
I have this very basic calculator:
<html>
<body>
<form name="form">
<input type="text" name="num1" />
<input type="text" name="num2" />
<input type="text" name="res" />
<input type="button" value="+" onclick="form.res.value = form.num1.value + form.num2.value" />
</form>
</body>
</html>
But it treats form.num1.value
and form.num2.value
as string and because of it the result is the concatenation of these values instead of addition.
How to treat them as numbers?
Upvotes: 2
Views: 4030
Reputation: 71918
Shortest way is the unary plus operator, which converts to Number:
+form.num1.value + +form.num2.value
Note: it will return NaN
for mixed inputs like "10 potatoes". To avoid that, you can use parseInt
or parseFloat
.
Upvotes: 2
Reputation: 1570
Try to convert them to number like this:
onclick="Numberform.res.value = Number(form.num1.value) + Number(form.num2.value)"
Upvotes: 1
Reputation: 190945
Wrap each value in a parseInt(value, 10)
or parseFloat(value)
.
Upvotes: 6