在下面的代码中,我试图调用valueAsNumber,但我只得到了NaN的返回。当我使用parseInt时,我得到了期望的结果。为什么是这样?

<html>
<head>
<title>JavaScript: Demo 1</title>
<link rel="stylesheet" type="text/css" href="index.css">
</head>

<body>
<div id="numbers">
  <div id="inputs">
    <form name="inputForm">
    <div class="prompt">Number 1: <input name="number1" type="text"></div>
    <div class="prompt">Number 2: <input name="number2" type="text"></div>
    </form>
  </div>
  <div id="result">
    <div class="prompt">RESULT: <span id="operation_result">&nbsp;</span></div>
  </div>
</div>
<div id="operations">
<p><a id="add_link" href="#" onClick="add(this)">ADD</a></p>
</div>

<script type="text/javascript">
  function add(linkElement){
  // var value1 = parseInt(document.inputForm.number1.value);
  // var value2 = parseInt(document.inputForm.number2.value);

  var value1 = document.inputForm.number1.valueAsNumber;
  var value2 = document.inputForm.number2.valueAsNumber;
    var result = value1 + value1;

    document.getElementById('operation_result').innerHTML = result;
  }
</script>

</body>
</html>

最佳答案

考虑到属性名称,您的期望是合理的,但请阅读实际的specs/documentation:



Here's a table列出适用于typevalueAsNumber。这些是:

日期和时间,
日期,
月,
周,
时间
当地日期和时间,

范围

是的,这是非常奇怪的API决定

09-13 08:44