Input type="number" - 在 IE11 或 Edge 中不起作用

Posted

技术标签:

【中文标题】Input type="number" - 在 IE11 或 Edge 中不起作用【英文标题】:Input type="number" - Not working in IE11 or Edge 【发布时间】:2018-06-14 10:58:59 【问题描述】:

所以我很清楚之前可能已经问过这个问题,但是在查看了很多关于这个问题的线程后,似乎没有明确的答案。

https://jsfiddle.net/hbruun/qmd0vgr8/

<div class="mt10"><input type="number" required="true" min="6.4" max="9.0" step="0.1" value="6.9" /></div>

上面的 jsfiddle(不是我的)是一个示例说明 input type="number" 如何在 IE11 和 Edge 中完全没用。不出所料,它在 chrome 中按预期工作,但我需要修复来替换它,以防止用户输入除数字字符以外的任何内容。

【问题讨论】:

创建一个下拉列表,唯一的选择是您希望他们使用的数字,或者使用正则表达式来验证它是输入后的数字。 “完全没用”不是对问题的技术描述。什么不起作用?此外,&lt;input&gt; 标记不使用或不需要结束斜杠,而且从来没有。 @Rob - 对不起,我的意思是 type="number" 在 IE 中没有任何作用。与 Chrome 相比,它会将我的输入限制为数字字符 【参考方案1】:

尝试将0设置为最小值,神奇的是它开始工作,但只是在step的范围内,所以,如果step=0.1 -> 1.1有效,1.12无效,当step=0.01时1.12有效有效,1.001 不会,依此类推。最小值将在代码中检查...

【讨论】:

【参考方案2】:
<label>Granularity:&nbsp:<span id="outgranularity">6.9</span><br/><input type="range" required="true" min="6.4" max="9.0" step="0.1" value="6.9" onchange="updateOutput(event)" /></label>

【讨论】:

这是做什么的?它如何回答这个问题?不要只是脱口而出代码。解释你自己! ***.com/help/how-to-answer @jj & Rob - 是的,我们都知道 IE 本身不会显示或验证数字输入字段上的输入。我建议你改用 range 类型,或者如果你想支持 IE9/10 以及使用 jquery forms 插件。 type="range" 不能只输入数字。甚至它在屏幕上创建了一个很奇怪的栏。

以上是关于Input type="number" - 在 IE11 或 Edge 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

safari input type="number"

如何从 Opera 中的 input[type="number"] 中删除箭头 [重复]

input type="number" 禁止输入E

如何获取 <input type="number"> 字段的原始值?

如何获取 <input type="number"> 字段的原始值?

有啥办法可以防止 input type="number" 得到负值?