绕过表单验证

Bypass Form Validation

我有一个带有单选按钮组的表单,我为其设置了验证逻辑,即在提交时必须 select 编辑组中的一个单选按钮。

但是我在该表单上也有一个取消按钮,我将其包装为超链接,如下所示:

<a href="@routes.MyController.index">
    <button>Cancel</button>
</a>

问题是,当用户在没有单选按钮被 selected 时点击这个取消按钮(因为他们出于某种原因想要离开表单),验证逻辑开始提示用户select 单选按钮选项。

单击取消按钮时如何绕过验证?

button改为div:

<a href="@routes.MyController.index">
  <div>Cancel</div>
</a>

默认的 type 属性是 submit,所以它将表单发送到服务器并验证它。在您的情况下,具有默认 submit 属性的 button 会捕获点击事件,因此 a 甚至不会点击。

如果您需要 button 标签,那么您需要使用 javascript 覆盖它的行为,例如:

<button type="button" onclick="window.location.href='@routes.MyController.index'">Cancel</button>

P.S。

这与 playframework 无关,它只是一个 HTML 行为。