在浏览器中禁用表单验证

17

我正在编写一个带有表单的网站,并使用HTML5验证。目前一切都没有问题,使用Google Chrome浏览器时一切正常。但我想确保即使是IE 6用户,也没有启用表单验证,也不会将格式不正确的数据插入到我的MYSQL数据库中。

有没有办法在Google Chrome或其他最先进的浏览器中关闭HTML5表单验证以测试服务器端数据验证?


可能是禁用HTML5表单元素验证的重复问题。 - P.S.
5个回答

58

要在HTML5中禁用验证,请使用

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

请参考这个问题了解更多细节。我认为Junit也可以帮助测试服务器端验证。
如果SQL查询是使用用户输入形成的,请使用参数化查询以获得更高的安全性。


编辑:

您可以在About:flags中进行设置。
步骤:
1. 在Google Chrome地址栏中,键入“about:flags”(不带引号)并按Enter键。
2. 滚动列表直到看到选项“禁用HTML5交互式表单验证”。
3. 点击启用链接。
检查:http://wikibin.org/articles/google-chrome-about-and-chrome-urls.html


编辑2:
刚收到消息,About:flags已被弃用,请改用chrome://flags。谢谢@Max提供的信息。


我不想在我的代码中禁用验证,而是在浏览器中禁用。 - Gerrit
谢谢你,这就是Diodes发布的内容。它对我有用,谢谢! - Gerrit
有没有类似于 chrome://flags 的东西适用于 Firefox(以在浏览器中禁用 HTML5 验证)? - Bogdan
6
由于我使用的 Chrome 版本是 53.0.2785.116,因此在我的 Chrome 中没有“禁用 HTML5 交互式表单验证”或类似选项。因此,这个答案在 2016 年后已经不再适用。 - Jason FB
虽然这曾经是最佳答案,但现在不再是了。我好像无法点踩(SO阻止我过度投票!)。不过请看@Bradley Flood的回答(目前是最后一个回答)。 - Jason FB
显示剩余2条评论

2
现在需要添加novalidate="novalidate",如下所示:

<Form novalidate="novalidate" onSubmit={this.handleSaveFormSubmit}>

仅使用novalidate不再起作用,Chrome将显示“请填写此字段”


2

我尝试过这个方法,但问题在于每次刷新页面都需要按下按钮。这在测试时效率不高。 - haris
我尝试了两个扩展程序。其中一个是“由Damien Alexandre提供的HTML5表单验证错误移除器”,可以在需要时打开它。另一个在其他答案中固定,以便始终禁用HTML5表单验证。由于问题是在开发人员调试的上下文中提出的,作为开发人员,我更喜欢显式地点击按钮,而不是安装会永久更改我的浏览器的东西。因此,我正在支持这个答案。 - Jason FB

0

很不幸,接受的答案已经过时了,因为它是在表单验证出现故障时引入的(请参见删除请求)

幸运的是,有一个chrome扩展程序可以为我们处理每个页面: 自动删除HTML5表单验证

我不是这个插件的作者,也不能保证它不会做任何它不应该做的事情。然而源代码非常简短(大约5行)。


我尝试了两个扩展程序,"Auto remove HTML5 form validation offered by Tobias Nyholm" 可以在任何时候移除所有的HTML5验证。另一个扩展程序(由@Bradley Flood提供的答案中列出),在Chrome扩展商店中列为 "HTML5 Form validation errors remover offered by Damien Alexandre",可以让你在需要时打开它。因此,我投票支持另一个答案。 - Jason FB

-3

如果您正在构建任何SQL字符串,绝对应在服务器上进行验证。

在客户端,您可以回退到基于JavaScript的验证,但这并不会提供保护。同样,在服务器端进行验证。


3
是的,那就是我想做的。我完全同意你的观点!出于这个原因,我想禁用浏览器验证来测试我的服务器端脚本。不幸的是,Chrome 不允许我在没有设置必填字段和输入正确格式的电子邮件地址的情况下提交表单。 - Gerrit
3
我相信这个问题已经在这里得到了回答:https://dev59.com/D3A75IYBdhLWcg3w0cnx - Diodeus - James MacFarlane
我已经阅读了这篇文章,但是我忽略了一个解释,即有一个chrome://flags可以启用/禁用验证。 - Gerrit
6
这完全没有回答问题。 - bot47

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接