我的输入如下:
<input id="AdministratorEmail" type="email" maxlength="255" novalidate="novalidate" name="data[Administrator][email]">
novalidate
为什么当我指定了属性时,浏览器(已在 Firefox 和 Chrome 中测试)仍试图为我自动验证电子邮件字段?
我怎样才能防止这种情况发生?
如果有任何相关性,我正在使用 CakePHP。
我的输入如下:
<input id="AdministratorEmail" type="email" maxlength="255" novalidate="novalidate" name="data[Administrator][email]">
novalidate
为什么当我指定了属性时,浏览器(已在 Firefox 和 Chrome 中测试)仍试图为我自动验证电子邮件字段?
我怎样才能防止这种情况发生?
如果有任何相关性,我正在使用 CakePHP。
问题是我novalidate
在单个输入上使用了该属性,这是不正确的。正如mata所指出的,它不是输入的可识别属性,而是HTML 表单标签本身的属性。
解决方案
<form novalidate="novalidate">
<input type="email" name="email" />
</form>
如您所见,您不需要将类型更改为type="text"
,并且与任何其他布尔属性一样,novalidate
可以通过多种方式添加并且都可以接受。
<form novalidate> <!-- Also acceptable -->
CakePHP 的解决方案
echo $this->Form->create('MyModel', array(
'novalidate' => true
));
echo $this->Form->input('email');
感谢标记。
因为type="email"
. 将此设置为type="text"
。它将以相同的方式工作,但无需验证。
这要归功于大多数主要浏览器使用的内置电子邮件验证。我个人从未听说过该novalidate
属性。
编辑:我刚刚阅读了 novalidate,你应该这样输入:
<form novalidate>
代替
<form novalidate="novalidate">