javascript - 如何对输入标签中的两个数字求和?

标签 javascript input tags

<分区>

Possible Duplicate:
How to add two strings as if they were numbers?

我写了一个简单的 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>

最佳答案

使用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; 
}

出现在value 之后的, 10 是基数,它确保返回的数字(如果有)将是哪个数字基数。

另请注意,result 变量也应在函数内声明,以避免污染全局范围(并可能在其他地方对其他变量造成问题)。

引用资料:

关于javascript - 如何对输入标签中的两个数字求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961474/

相关文章:

iOS Safari 输入属性大写?

JavaScript - 只允许粘贴数字而不使用 jQuery

html - 正则表达式在另一个标签中查找标签

javascript - React.js block 元素的双向绑定(bind)

javascript - 在 Strapi 3 的左侧菜单中显示自定义插件(页面)

html - 文本框中没有文本就不能输入

reactjs - 如何获取 enzyme 中的根标签名称?

javascript - 使用 jsdoc 记录匿名对象和函数的最佳方式

javascript - 按空格分割字符串(引号内除外),但包含不完整的引号

javascript - 如何在 Angular JS 中添加图像