parseInt returns NaN

parseInt returns NaN

本文关键字:NaN returns parseInt      更新时间:2023-09-26

花了45分钟试图弄清楚它为什么返回NaN,请告诉我正确的方向。我的代码是:

<form name="calc">
  <input type="text" value="0" name="first" onchange="add()">
  <input type="text" value="0" name="second" onchange="add()">
  <input type="text" name="result" onchange="add()">
</form>
<script type="text/javascript">
  var a = parseInt(document.calc.first.value);
  var b = parseInt(document.calc.second.value);
  var c = a + b;
  function add(){
    document.calc.result.value = parseInt(c);
  }
</script>

您正在寻找:

function add() {
  var a = parseInt(document.calc.first.value, 10);
  var b = parseInt(document.calc.second.value, 10);
  var c = a + b;
  document.calc.result.value = c;
}

每次更改ab值时,都必须重新读取它们。

注意1:另外,请记住parseInt(val, radix)中的radix参数。在你的情况下是10(我想是这样)。请参阅MDN关于为什么这很重要的文章。

注意2:不需要调用parseInt(c),因为c的类型已经是number了。

ab在页面加载时计算一次,当表单仍然为空时,显然结果将是NaN

将所有逻辑放入add函数中,以便检索表单的当前状态。