javascript - 第二个函数的输出错误

标签 javascript

我有一个代码,其中有两个函数:

  • 在第一个函数中,硬编码值将会发生
  • 在第二个函数中,值是动态变化的。

这是我的 HTML

<input type="text" name="txt1" id="txt1">
<input type="text" name="txt2" id="txt2">
<input type="text" name="txt3" id="txt3">
<input type="submit" value= "ADD Value" onclick="Addhardcode(1,2,3)">
<input type="submit" value="Add" onclick ="Add()">

脚本:

<script type="text/javascript">
<!--
function Addhardcode(a,b,c)
{
    a+b+c;
    alert(a+b+c);
}
function Add()
{
    var x= document.getElementById("txt1")
    var y= document.getElementById("txt2")
    var z= document.getElementById("txt3")
    var a=x.value;
    var b=y.value;
    var c=z.value;

    Addhardcode(a,b,c);
}
//-->
</script>

点击按钮ADD Value时,我得到了正确的答案,但是,点击按钮Add时,我没有得到正确的答案。如果我在文本框中传递 4 ,5& 6 ,则输出为 456 而不是 15。我做错了什么。如果我必须对文本框进行验证,它只需要数字或者不能为空。那我该怎么办

最佳答案

您得到串联答案的原因是 JavaScript 会将传递的参数视为字符串。它们作为字符串传递,因为它们是从文本框的 value 属性中提取的,该属性是一个字符串。

这相当于这样做:

alert('4'+'5'+'6'); // Gives '456'

要实际添加数字,您需要先将它们转换为整数。

var a = parseInt(x.value);
var b = parseInt(y.value);
var c = parseInt(z.value);

关于javascript - 第二个函数的输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643692/

相关文章:

javascript - 异步/等待请求内部 Passport 策略

c# - 如何过滤掉这个非法的 JavaScript 字符?它是在运行时生成的

javascript - 如何为 SVG 中的虚线设置动画(使用 HTML、CSS 和/或 JavaScript)

javascript - Twitter 时间轴小部件在中型设备上消失(Bootstrap)

javascript - 如何删除嵌入在另一个 JSON 数组 (f7Contacts) 中的特定 JSON 数组 (consultas),这两个数组都保存在单个 localSorage 键中?

javascript - 如何将图像从 SimpleHTTPServer 存储到我的计算机?

javascript - 使用 jquery 更改后复选框未提交

javascript - 为什么单击按钮在我的 Javascript-html 中不起作用?

javascript - Jquery 和 ShadowBox

javascript - React - 从子 DOM 元素获取 React 组件?