Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Chrome/HTML5:输入类型编号不符合max属性?_Forms_Html_Google Chrome - Fatal编程技术网

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

Forms Chrome/HTML5:输入类型编号不符合max属性?,forms,html,google-chrome,Forms,Html,Google Chrome,我有以下标记: <input type="number" max="99" /> 在Google Chrome(可能还有其他webkit浏览器)中,这将限制微调器的向上箭头超过99,但它不会阻止用户键入大于99的数字。即使是onblur,也不会删除/替换无效值,甚至不会给出该值无效的警告 我是否误解了它的工作原理,或者这是一个bug?我正在使用最新版本的Chrome(撰写本文时为19) 编辑: 为了澄清,我想知道为什么首先允许输入大于指定最大值的数字。我知道它在表单提交时提供了

我有以下标记:

<input type="number" max="99" />

在Google Chrome(可能还有其他webkit浏览器)中,这将限制微调器的向上箭头超过99,但它不会阻止用户键入大于99的数字。即使是onblur,也不会删除/替换无效值,甚至不会给出该值无效的警告

我是否误解了它的工作原理,或者这是一个bug?我正在使用最新版本的Chrome(撰写本文时为19)

编辑:

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


如果这是出于某种原因想要的行为,为什么?还有没有更好的方法可以在不使用JS的情况下强制输入范围?

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

<form action="#" method="get">
  <input type="number" max="99" />
  <input type="submit" value="Submit!" />
</form>


这是一个老问题,但我在任何地方都没有找到这个问题的相关答案。 这种行为在chrome(61版)中仍然存在

我发现了一个可以在某些情况下使用的小技巧。 它适用于那些使用数据绑定库的人,如
aurelia
angular
等。。我只在aurelia上进行了测试,但这对其他人也适用

这个技巧依赖于这样一个事实,即
range
类型的输入强制执行
min
/
max
约束

我们只需创建另一个输入(类型为
range
),该输入与常规输入的值相同,并通过
css
将其隐藏

当用户输入的值大于
max
值时,它将恢复到
max


这是aurelia中的一个演示:

对我来说很好,我收到错误消息“值必须小于或等于99”。我们能看看你的实际代码吗?当我试图提交一个数字超出范围的表单时,Chrome和Opera都会发出警告:为什么这只会显示在表单提交上?更重要的是,为什么一开始就允许这样做?它限制了微调器,因此您不能使用它来输入更高的值-为什么不手动输入呢?我也不能使用maxlength或pattern来限制它,因为它们不适用于数字类型的输入。我一直在写JS乱码…一般来说,限制键盘输入任意范围是不可能的。假设是这样,浏览器不能拒绝“1”,尽管它超出范围。@int32\t:浏览器可以拒绝“1”。它只能在模糊上这样做,就像你输入“a”一样。如果它能告诉我一个值是一个有效的数字,那么我认为没有理由它不能强制执行这个范围…谢谢,但这只显示了一条错误消息。我更关心的是为什么它允许输入一个大于最大值的值。微调器控件不允许您超过最大值,因此为什么它允许您键入更大的数字?对我来说似乎是一个疏忽或错误。显然,权力机构不同意我将其归类为错误。这完全是一个错误,请向他们重申他们的疏忽:c