3

我的输入如下:

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

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

我怎样才能防止这种情况发生?

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

4

2 回答 2

5

问题是我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');

感谢标记

于 2013-07-23T13:11:13.173 回答
0

因为type="email". 将此设置为type="text"。它将以相同的方式工作,但无需验证。

这要归功于大多数主要浏览器使用的内置电子邮件验证。我个人从未听说过该novalidate属性。

编辑:我刚刚阅读了 novalidate,你应该这样输入:

<form novalidate>

代替

<form novalidate="novalidate">
于 2013-07-23T11:13:45.143 回答