Chrome/HTML5:输入类型编号不符合最大属性?

FtD*_*Xw6 24 html forms html5 google-chrome

我有以下标记:

<input type="number" max="99" />
Run Code Online (Sandbox Code Playgroud)

在谷歌浏览器(以及可能的其他webkit浏览器)中,这将限制微调器的向上箭头超过99,但它不会阻止用户键入高于99的数字.即使是onblur,也不会删除/替换无效值或即使是警告,因为该值无效.

我是否误解了它应该如何工作,或者这是一个错误?我使用的是最新版本的Chrome(撰写本文时为19).

编辑:

为了澄清,我想知道为什么首先允许输入大于指定最大值的数字.我意识到它提供了表单提交的工具提示,告诉你它是无效的,但似乎不一致的行为,微调器不允许你超过最大值,但你可以随时键入一个高于最大值的数字来规避它.

如果由于某种原因这是期望的行为,那为什么呢?是否有更好的选择来强制输入范围而不诉诸JS?

Com*_*eek 9

它确实有效,但如果您在代码中放入提交按钮和表单,则只会看到错误消息(工具提示):

<form action="#" method="get">
  <input type="number" max="99" />
  <input type="submit" value="Submit!" />
</form>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

  • 这完全是一个错误,请重申他们对他们的疏忽:c (8认同)
  • 谢谢,但只显示错误消息.我更关心为什么它允许输入的值首先大于最大值.微调器控件不会让你超过最大值,那为什么它会让你输入更大的数字呢?对我来说似乎是一种疏忽或错误. (4认同)