禁用输入类型=数字的输入验证

Disable input validation for input type=number

本文关键字:输入 验证 数字 类型      更新时间:2023-09-26

我在表单元素中有一个数字输入标记:

<form novalidate="">
      <input type="number" data-role="none" autocapitalize="off" autocorrect="off" autocomplete="off" placeholder="Quantity" class="quantityInput" />
</form>

当用户键入任何non-numeric值时,浏览器会对其进行验证,并在提交调用之前删除整个文本。

根据其他答案的建议,我尝试在表单上使用novalidate和novalidate="novalidate"属性。我还尝试点击invalid事件。但似乎什么都不起作用。如果是non-numeric,浏览器只会在执行提交调用之前删除整个文本。

使用输入type="number"的原因是我需要一个数量字段,用户可以在其中键入10 grams23 pcs等。因此,通过设置输入type="number",iOS首先显示键盘的数字版本。

如何禁用输入数字类型的浏览器验证?

现代答案(截至2020年)是使用inputmode:

    <input type="text" inputmode="email">
    <input type="text" inputmode="tel">