如何禁用 CakePHP 的客户端电子邮件验证?

How do I disable CakePHP's client side email validation?

甚至在将数据发送到服务器之前弹出的验证类型。我表单中的其他字段,即 'name'、'message' 也有这些,但我通过在我的 FormTable 中使用它们各自的验证器来删除它们。对电子邮件验证器做了同样的事情,但它仍然存在。

电子邮件字段检查电子邮件的有效性(包含“@”和点)。

这是我认为的形式。 $form 只是一个数组,它将包含通过会话传递的值。:

<?= $this->Form->create($message, ['class' => 'form-group']) ?>
<?= $this->Form->input('name', ['value' => $form['name']]) ?>
<?= $this->Form->input('email', ['value' => $form['email']]) ?>
<?= $this->Form->input('message', ['value' => $form['message']]); ?>
<?= $this->Form->button('Submit', ['class' => 'btn btn-primary btn-lg btn-block']) ?>
<?= $this->Form->end() ?>

我不太确定为什么需要我的代码,所以很抱歉,但是在创建电子邮件字段时,按照 cake 的约定,客户端验证是内置的,这就是我想要摆脱的。

这样做的不是蛋糕,而是HTML5

如果要在 HTML5 中禁用表单的客户端验证,请将 novalidate 属性添加到表单元素。外汇:

   <?= $this->Form->create($message, ['class' => 'form-group', 'novalidate' => true]) ?>

wich 将导致类似的结果:

<form method="post" action="/foo" novalidate>...</form>

https://www.w3.org/TR/html5/sec-forms.html#element-attrdef-form-novalidate