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