我是Javascript编码的新手,我正在尝试制作我的第一个计算器:它有三个文本框,用户在第一个文本框中输入要添加的第一个数字,第二个文本中的第二个数字框,然后他们点击一个按钮,添加这两个数字的结果出现在第三个文本框中。但是当我做1 + 1时它会产生11而不是2而当我做2 + 2时它会产生22而不是4.我知道这是一个非常新手的问题,但是你能帮助我吗?我究竟做错了什么?也很抱歉我的英语不好,我是巴西人。这是JS代码:
<script>
function AddResolve() {
document.getElementById('AddResult').value = document.getElementById('AddInputOne').value + document.getElementById('AddInputTwo').value
}
</script>
以下是三个框和按钮的HTML代码:
<input type="text" id="AddResult">
<input type="text" id="AddInputOne">
<input type="text" id="AddInputTwo">
<input type="button" id="AddButton" onclick="AddResolve()">
答案 0 :(得分:8)
这是因为Javascript中的字段值是字符串,而不是数字。你需要强迫它们成为整数:
document.getElementById('AddResult').value =
parseInt(document.getElementById('AddInputOne').value) +
parseInt(document.getElementById('AddInputTwo').value)
使用字段值调用parseInt()
会将字符串转换为整数。
答案 1 :(得分:0)
存储在文本框中的value
是一个字符串,JavaScript通过连接它们来添加字符串。您需要将这两个字符串转换为parseInt(value, 10)
的数字。
答案 2 :(得分:0)
制作它~~&#34; 2&#34;或parseInt(&#34; 2&#34;)取决于您需要的结果
参考:
0)JavaScript string and number conversion
1)What is the "double tilde" (~~) operator in JavaScript?
2)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt