【发布时间】:2015-06-24 13:05:49
【问题描述】:
我有一个非常简单的问题 - 有没有办法仅对某些选定的输入禁用 HTML5 验证(而不是为整个表单设置“novalidate”)?
我的意思是<input type='number' requirednovalidate>。但这不起作用。
你可能会问为什么我需要 type="number" 或 "required" 呢?好吧,我需要它,因为我的框架将它用于自己的验证。
编辑
这是关于一个特殊的输入 - 出生号码。我需要它是 number 类型(因为移动设备),但它的值主要与“/”(例如 860518/8757)一起使用,这对于类型 number 来说是无效字符时间>。所以我需要用户填写它而不用斜线(8605188757)。问题是当 html5 输入中填充了无效值时(例如数字类型的“fsda”),它看起来像是空的,没有值。
因此,当用户以错误的格式(860518/8757)填写值时,html 验证被禁用,因此 JS 验证运行,它被验证为空字段。所以错误信息就像“请填写出生号码”(这真的很混乱)而不是“对不起,格式错误”。
我的解决方案是为此字段启用 html5 验证(因此当填写错误格式时会显示默认浏览器消息)但对其他字段禁用它,以便仅使用我的 JS 验证对其进行验证。
【问题讨论】:
-
/符号在输入类型为数字时不会出现在手机键盘上。 -
@A.J 我知道,但也有来自 PC 设备的流量。很多人习惯于用
/填写这个字段。我只需要在为数字类型启用/(这很可能是不可能的)和为整个表单启用/禁用html5验证之间做出某种妥协。
标签: html validation