为什么'valueAsNumber'返回NaN作为值? [英] Why does 'valueAsNumber' return NaN as a value?
问题描述
在下面的代码中,我试图调用 valueAsNumber
,但是我刚得到了NaN.当我使用 parseInt
时,我得到了期望的结果.为什么会这样?
In the code below, I am trying to call valueAsNumber
but I just get a NaN returned. When I use parseInt
I get the result I expect. Why Is this?
<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"> </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>
推荐答案
Your expectations are reasonable considering the property name, but reading actual specs/documentation:
valueAsNumber IDL属性表示元素的值,解释为数字.
The valueAsNumber IDL attribute represents the value of the element, interpreted as a number.
获取时,如果valueAsNumber属性不适用,则按定义输入元素的type属性的当前状态,然后返回非数字(NaN)值.
On getting, if the valueAsNumber attribute does not apply, as defined for the input element's type attribute's current state, then return a Not-a-Number (NaN) value.
这是一张表,其中列出了应用于 valueAsNumber
的 type
类型.这些是:
Here's a table that list's type
s that apply to valueAsNumber
. These are:
- 日期和时间(
datetime
)(请注意,此type =""
现在在HTML LS中已过时了) - 日期(
日期
) - 月(
月
) - 周(
周
) - 时间(
时间
) - 本地日期和时间(
datetime-local
) - 数字(
数字
) - 范围(
范围
)
- Date and Time (
datetime
) (Note thistype=""
is now obsolete in HTML LS) - Date (
date
) - Month (
month
) - Week (
week
) - Time (
time
) - Local Date and Time (
datetime-local
) - Number (
number
) - Range (
range
)
请注意,上述列表中显然没有 type ="text"
,因此, textInput.valueAsNumber
始终返回NaN
,即使 isNaN(parseInt(textInput.value,10))=== false
.
这篇关于为什么'valueAsNumber'返回NaN作为值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!