My code is a simple function that checks which radio button was pressed, and adds the value of that radio button to my var input = 0;
. However, I know I am doing something wrong as it works but the output is wrong. When one of the if
statements is true, instead of input(0) now being equal to itself plus the new value of the getElementById("small").value
, it prints out 010
as opposed to the now 10
.
I know in Java there was a convention similar to input += getElementById("small").value;
but this doesn't seem to work. So as you can see in my example below, I tried the alternative of input = input + /*code*/;
but still no luck.
I am new to JavaScript but very familiar with Java. I imagine I'm just using the wrong syntax here but all my Google searches are a bust.
function calculate()
{
var input = 0;
if (document.getElementById("small").checked)
{
input = input + document.getElementById("small").value;
}
else if (document.getElementById("medium").checked)
{
input = input + document.getElementById("medium").value;
}
else if (document.getElementById("large").checked)
{
input = input + document.getElementById("large").value;
}
else
{
alert("failed");
}
document.getElementById("outar").innerHTML = input;
}
You're trying to do arithmetic with a string. You need to use parseInt()
around each of your document.getElementById("....").value
expressions because the .value
property is a string.
Example:
input += parseInt(document.getElementById("small").value);
Your value is not a number by default, it's a string. You got to parse it first:
input += parseInt(document.getElementById("large").value);
您可以在字符串值之前添加额外的+符号,以便将其转换为数字:
input += +document.getElementById("large").value;
You need to convert .value
to a number as an integer or a float with parseInt
or parseFloat
. .value
is a string.
Javascript is dynamically typed language, not static typed like java. document.getElementById("small").value returns a string which needs to be converted to int with parseInt().
Ho[e that helps :)
You can also refer to this link-
The returned value from the value is a string . You have to convert it to int before doing any arithmetic operations.
JavaScript is a dynamically typed language, not static typed like java.
Return Value : A String, representing the value of the text field
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.