如何防止浏览器尝试自动验证电子邮件地址字段?

时间:2013-07-23 11:12:46

标签: html html5 validation cakephp

我的意见如下:

<input id="AdministratorEmail" type="email" maxlength="255" novalidate="novalidate" name="data[Administrator][email]">

为什么当我指定novalidate属性时,浏览器(已在Firefox和Chrome中测试过)仍在尝试为我自动验证电子邮件字段?

如何防止这种情况发生?

如果它与任何相关性,我正在使用CakePHP。

2 个答案:

答案 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">