为什么“数字”类型的 html 输入允许在字段中输入字母“e”?

新手上路,请多包涵

我有以下 html5 输入元素:

 <input type="number">

为什么此输入允许在输入字段中输入字符“e”?无法输入其他字母字符(如预期的那样)

使用 chrome v. 44.0.2403.107

下面的例子来看看我的意思。

 <input type="number">

原文由 Gnarlywhale 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 730
2 个回答

因为这正是 规范所说的 应该如何工作。数字输入可以接受 浮点数,包括负符号和 eE E 字符(其中指数是 e 之后的数字 --- ):

浮点数由以下部分组成,完全按照以下顺序:

  1. 可选地,第一个字符可以是“ - ”字符。
  2. 0—9 ”范围内的一个或多个字符。
  3. (可选)以下部分,完全按照以下顺序:
    1. 一个“ . ”字符
    2. 0—9 ”范围内的一个或多个字符
  4. (可选)以下部分,完全按照以下顺序:
    1. 一个“ e ”字符或“ E ”字符
    2. 可选地,一个“ - ”字符或“ + ”字符
    3. 0—9 ”范围内的一个或多个字符。

原文由 j08691 发布,翻译遵循 CC BY-SA 4.0 许可协议

<input type="number" onkeydown="javascript: return ['Backspace','Delete','ArrowLeft','ArrowRight'].includes(event.code) ? true : !isNaN(Number(event.key)) && event.code!=='Space'" />

原文由 ashish 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题