绕过表单验证
Posted
技术标签:
【中文标题】绕过表单验证【英文标题】:Bypass Form Validation 【发布时间】:2019-01-20 17:12:44 【问题描述】:我有一个带有单选按钮组的表单,我为其设置了验证逻辑,即在提交时必须选择组中的一个单选按钮。
但是,我在该表单上还有一个取消按钮,我已将其包装为超链接,如下所示:
<a href="@routes.MyController.index">
<button>Cancel</button>
</a>
问题是当用户在没有选择单选按钮的情况下单击此取消按钮时(因为他们出于某种原因想要离开表单),验证逻辑会启动提示用户选择单选按钮选项。
单击取消按钮时如何绕过验证?
【问题讨论】:
【参考方案1】:将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>
附:
它与 playframework 无关,它只是一个 html 行为。
【讨论】:
以上是关于绕过表单验证的主要内容,如果未能解决你的问题,请参考以下文章