您好我正在尝试在javascript中简单添加两个数字。当我试图获取两个输入元素值时,结果是两个数字的串联
以下是代码:
<html>
<title>
</title>
<head>
<script type="text/javascript">
function loggedUser() {
//Get GUID of logged user
//alert('success');
var x, y , result;
x = document.getElementById('value1').value;
y = document.getElementById('value2').value;
result=x+y;
alert(result);
document.getElementById('res').value = result;
}
</script>
</head>
<body>
<input type="text" id="value1"><br>
<input type="text" id="value2"><br>
<input type="text" id="res">
<input type="submit" value ="submit" onclick=loggedUser();>
</body>
</html>
答案 0 :(得分:4)
“+”运算符已超载。如果任何参数是字符串,则它们都将转换为字符串并连接。如果参数是数字,则完成添加。表单控件值始终是字符串。
首先使用以下方法之一将参数转换为数字:
x = Number(document.getElementById('value1').value);
或
x = parseInt(document.getElementById('value1').value, 10);
或
x = parsefloat(document.getElementById('value1').value);
或
x = +document.getElementById('value1').value;
或
x = document.getElementById('value1').value * 1;
依旧......
哦,你也可以在必要时转换它:
result = Number(x) + Number(y);
等
答案 1 :(得分:3)
输入字段包含字符串。如果要对两个数字求和,则必须在添加之前将字符串转换为数字 - 否则只需添加两个字符串。根据您想要允许的内容,有很多方法可以做到这一点。这是一个:
var x, y , result;
x = Number(document.getElementById('value1').value);
y = Number(document.getElementById('value2').value);
result=x+y;
alert(result);
document.getElementById('res').value = result;
答案 2 :(得分:1)
document.getElementById('').value
返回一个字符串。您需要在其上调用parseInt
以使其成为数字。
答案 3 :(得分:1)
这是因为x
和y
实际上是字符串,而不是数字。元素的value
字段始终为字符串,因此x+y
为您提供x
和y
的连接。
您可以将x
和y
解析为整数并添加解析结果:这将为您提供所需的内容。
答案 4 :(得分:1)
问题是,当您获取这些值时,您将获得一个字符串,结果您正在进行连接。您应该在x和y上使用parseInt,如下所示:
x = parseInt(document.getElementById('value1').value);
y = parseInt(document.getElementById('value2').value);