【问题标题】:On an input[type='number'] Edge always returns `NaN` for `valueAsNumber`在输入[type='number'] 边缘总是为 `valueAsNumber` 返回 `NaN`
【发布时间】:2016-03-19 00:04:19
【问题描述】:

以下内容在 Chrome 和 Firefox 中运行良好,但在 Edge 中,无论输入如何,它都会提醒 NaN

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

现在,我问如何解决这个问题(使用parseFloat(el.value) 做到这一点),但是我问的是,如果最基本的功能没有,那么 Edge 实现了valueAsNumber 是什么? t 似乎工作。例如,应该如何使用这个属性根据 Edge

【问题讨论】:

  • 你的 Edge 版本是什么? Edge 13支持valueAsNumber()
  • @Cattla Ehm,我只是说它正在返回NaN,所以显然它是受支持的(不支持的属性是未定义的;-))。此外,我认为您在谈论 EdgeHTML 版本,而不是 Edge 版本。无论哪种方式:Edge 25 和 EdgeHTML 13

标签: javascript html microsoft-edge


【解决方案1】:

Microsoft Edge 在valueAsNumber 上出现异常行为。这被报告为错误#669685。此外,设置 valueAsNumber 会产生 InvalidStateException。

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

【讨论】:

    【解决方案2】:

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

    document.addEventListener('click', function(e) {
      if(e.target.nodeName === 'BUTTON') {
        alert(e.target.previousElementSibling.valueAsNumber);
      }
    });
    <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>

    【讨论】:

    • 这太没有意义了,太神奇了。
    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 2012-04-28
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2014-11-16
    相关资源
    最近更新 更多