在下面的代码中,我试图调用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"> </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>
考虑到房产名称,您的期望是合理的,但阅读实际情况规格/文档 http://www.w3.org/TR/2011/WD-html5-20110525/common-input-element-attributes.html#dom-input-valueasnumber:
valueAsNumber IDL 属性表示元素的值,
解释为数字。
获取时,如果 valueAsNumber 属性不适用(如定义)
对于输入元素的 type 属性的当前状态,然后返回
非数字 (NaN) 值。
这是一张桌子 http://www.w3.org/TR/2011/WD-html5-20110525/the-input-element.html#input-type-attr-summary该列表的type
适用于valueAsNumber
。这些都是:
- 日期和时间 (
datetime
)(注意这个type=""
现在在 HTML LS 中已过时)
- Date (
date
)
- Month (
month
)
- Week (
week
)
- Time (
time
)
- 本地日期和时间(
datetime-local
)
- Number (
number
)
- Range (
range
)
观察一下type="text"
上面的列表中明显没有, 所以textInput.valueAsNumber
总会回来的NaN
即使当isNaN( parseInt( textInput.value, 10 ) ) === false
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)