在浏览器中禁用表单验证

Posted

技术标签:

【中文标题】在浏览器中禁用表单验证【英文标题】:Disable form validation in browser 【发布时间】:2012-03-13 01:26:41 【问题描述】:

我在一个带有表单的网站上编码并使用 html5 验证 - 到目前为止还没有火箭科学。在 Google Chrome 中一切正常,但我想确保即使是没有表单验证的 IE 6 用户也不会将格式错误的数据插入到我的 mysql 数据库中。

有什么方法可以关闭谷歌浏览器或其他一些最先进的浏览器中的 HTML5 表单验证来测试服务器端数据验证?

【问题讨论】:

Disable validation of HTML5 form elements的可能重复 【参考方案1】:

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

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

只是novalidate 不再有效,Chrome 会显示“请填写此字段”

【讨论】:

【参考方案2】:

不幸的是,接受的答案不再起作用,因为它是在表单验证出现错误时引入的(see removal requests)。

幸运的是,有一个 chrome 扩展程序可以为我们处理每个页面: Auto remove HTML5 form validation .

我不是这个插件的作者,我不能保证它不会做任何不应该做的事情。 source code 很短,不过(大约 5 行)。

【讨论】:

我尝试了两个扩展“自动删除 Tobias Nyholm 提供的 HTML5 表单验证”始终删除所有 HTML5 验证。另一个(在@Bradley Flood 的回答中列出)在 Chrome 扩展商店中列为“Damien Alexandre 提供的 HTML5 表单验证错误清除器”,可让您在需要时打开它。出于这个原因,我赞成另一个答案【参考方案3】:

此 Chrome 扩展程序允许您禁用 Chrome 的内置 HTML 验证

HTML5 Form validation errors remover

【讨论】:

我试过这个,但问题是每次刷新页面时都必须按下按钮。进行测试时效率不高。 我尝试了这两个扩展。这个..“Damien Alexandre 提供的 HTML5 表单验证错误清除器”可让您在需要时打开它。另一个答案中的另一个已修复,因此它始终禁用 HTML5 表单验证。由于该问题是在为开发人员调试的上下文中提出的,因此作为开发人员,我更愿意明确地点击按钮,而不是安装会永久改变我的浏览器的东西。出于这个原因,我赞成这个答案【参考方案4】:

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

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

请参阅this 问题了解更多详情。我认为 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。

【讨论】:

我不想在我的代码中而是在浏览器中禁用验证 感谢您,它与 es Diodes postet 相同。它对我有用,谢谢! about:flags 已弃用。改用 chrome://flags firefox 是否有类似chrome://flags 的东西(在浏览器中禁用 html5 验证)? 这个答案在 2016 年似乎不再有效,因为我的 Chrome 版本中没有“禁用 HTML5 交互式表单验证”(或类似的东西)。我在 Mac OS X 上使用 Chrome 版本 53.0.2785.116【参考方案5】:

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

在客户端中,您应该能够回退到基于 javascript 的验证,但这没有保护作用。在服务器上也可以。

【讨论】:

是的,这就是我想要做的。我完全同意你!出于这个原因,我想禁用浏览器验证来测试我的服务器端脚本。不幸的是,Chrome 不允许我在未设置必填字段并输入正式正确的电子邮件地址的情况下发送表单 我相信这里已经回答了这个问题:***.com/questions/3090369/… 我已经阅读了这篇文章,但我忽略了一个建议,它解释了有一个 chrome://flags 来启用/禁用验证。 这根本不能回答问题。

以上是关于在浏览器中禁用表单验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在rails中禁用嵌套表单的服务器端验证

带密码确认的引导 4 验证并禁用提交,直到表单验证(注册表单)

Primefaces,如何禁用表单验证?

启用/禁用使用 JQuery 禁用输入的 ASP.NET Web 表单所需的验证器?

使用“ng-form”启用/禁用嵌套子表单的角度表单验证

使用 Jquery Validator 出现验证错误时如何避免或禁用表单提交