我的意见如下:
<input id="AdministratorEmail" type="email" maxlength="255" novalidate="novalidate" name="data[Administrator][email]">
为什么当我指定novalidate
属性时,浏览器(已在Firefox和Chrome中测试过)仍在尝试为我自动验证电子邮件字段?
如何防止这种情况发生?
如果它与任何相关性,我正在使用CakePHP。
答案 0 :(得分:4)
问题是我在个别输入上使用novalidate
属性,这是不正确的。正如mata指出的那样,它不是输入的公认属性,而是HTML form tag本身的属性。
<强>解决方案强>
<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');
感谢mark。
答案 1 :(得分:1)
由于type="email"
。
将其设置为type="text"
。它的工作方式相同但没有验证。
这要归功于大多数主流浏览器使用的内置电子邮件验证。我个人从未听说过novalidate
属性。
编辑:我刚刚阅读了novalidate,你应该这样输入:
<form novalidate>
而不是
<form novalidate="novalidate">