我写了一个简单的JavaScript代码,我想使用两个输入框并从这两个值中添加数字。这是代码,我看到的结果是1520而不是35。
我该如何解决?
n1 <input type = "number" id = "n1" value=15 />
n2 <input type = "number" id = "n2" value=20 />
<p>Sum?</p>
<button onclick="sum()">Try it</button>
<p id="demo2">Result?? </p>
<script type="text/javascript">
function sum()
{
var fn, ln;
fn = document.getElementById("n1").value;
ln = document.getElementById("n2").value;
result = (fn+ln);
document.getElementById("demo2").innerHTML = result;
}
</script>
答案 0 :(得分:5)
使用parseInt()
或parseFloat()
;您遇到的问题是您连接两个字符串,而不是添加两个数字。 parseInt()
(假设它找到一个实数)通过将字符串转换为数字来解决该问题:
function sum()
{
var fn, ln, result;
fn = parseInt(document.getElementById("n1").value, 10);
ln = parseInt(document.getElementById("n2").value, 10);
result = (fn+ln);
document.getElementById("demo2").innerHTML = result;
}
, 10
之后出现的value
是基数,它确保返回的数字(如果有)的数字基数。
另请注意,result
变量也应在函数内声明,以避免污染全局范围(并可能在其他地方创建其他变量的问题)。
参考文献:
答案 1 :(得分:4)
result = (parseFloat(fn)+parseFloat(ln));