例如,在我的表单中,我想使用新的HTML5表单类型<input type="url" />
(有关此类型的更多信息)。
问题是Chrome希望对我有帮助,并为我验证这些元素,除了它会吸引人。如果未通过内置验证,则该元素不会成为焦点。我用预先填充了URL元素"http://"
,因此我自己的自定义验证只是将这些值视为空字符串,但Chrome拒绝了。如果我可以更改其验证规则,那也可以。
我知道我可以恢复使用,type="text"
但是我希望使用这些新类型的产品提供更好的增强功能(例如:它会自动切换到移动设备上的自定义键盘布局):
因此,有没有办法关闭或自定义自动验证?
$('[inputmode]').each(function () { this.attr({type: this.attr('inputmode'), novalidate: true}) });
inputmode
。以您的方式进行操作,您仍然无法(例如)读取用户在type输入框中输入的非数字值number
。例如,尝试在此小提琴的文本框中键入非数字内容,然后单击按钮。
<input type='number'>
根本不接受非数字值吗?
inputmode
属性,如果我理解正确的话,该属性可用于指定当用户与该字段进行交互时应向用户提供哪种键盘类型,而无需暗示任何验证规则。在将来的某个时候,使用inputmode
属性代替type
属性可能是解决此问题的正确方法-但目前还不是。