在输入[type ='number']上,Edge总是为`valueAsNumber`返回`NaN`

Dav*_*der 8 javascript html5 microsoft-edge

以下在Chrome和Firefox中运行良好,但在Edge中,NaN无论输入如何,它都会发出警报

document.querySelector('button').addEventListener('click', function(){
	alert(document.querySelector('input').valueAsNumber);
});
Run Code Online (Sandbox Code Playgroud)
<input type='number' value='34'>
<button>
  Alert number
</button>
Run Code Online (Sandbox Code Playgroud)

现在,我不是在问如何解决这个问题(使用parseFloat(el.value)这个技巧),但是我问的是valueAsNumber,如果最基本的功能看起来不起作用,那么Edge实现了什么呢.如同,根据Edge,如何使用此属性.

Seb*_*zzz 5

Microsoft Edge正在破坏行为valueAsNumber.这被报告为bug #669685.此外,设置会valueAsNumber产生InvalidStateException.

这在Microsoft Edge 17682中得到修复,目前可在Windows Insider版本中使用.


Ric*_*ock 4

我不知道为什么 Edge 不支持valueAsNumbertype="number"但它确实支持范围、周、月和日期:

document.addEventListener('click', function(e) {
  if(e.target.nodeName === 'BUTTON') {
    alert(e.target.previousElementSibling.valueAsNumber);
  }
});
Run Code Online (Sandbox Code Playgroud)
<p><input type="range" value="15">          <button>Alert number</button></p>
<p><input type="week"  value="2015-W50">    <button>Alert number</button></p>
<p><input type="month" value="2015-12">     <button>Alert number</button></p>
<p><input type="date"  value="2015-12-12">  <button>Alert number</button></p>
Run Code Online (Sandbox Code Playgroud)

  • 这毫无意义,但却令人惊奇。 (3认同)