启用浏览器的表单自动填充

Posted

技术标签:

【中文标题】启用浏览器的表单自动填充【英文标题】:Enabling browser's form auto-filling 【发布时间】:2012-02-01 15:41:48 【问题描述】:

我正在为我的网站制作注册表单。它包含各种标准表单域。如:姓名、地址、电话号码、用户名、密码等

当我双击一个字段(在 Chrome 16 中)以便自动填写我的地址时,我收到以下消息:

此网页已禁用此表单的自动填写功能。

我没有禁用它,那么如何启用它?我尝试将autocomplete="on" 添加到<form> 标签和(某些)<input> 标签,但没有帮助。

我需要在每个字段中添加autocomplete="on" 吗?另外,浏览器怎么知道什么字段是什么?我需要为这些字段命名吗?

另一个问题:自动填写表单时是否会触发某种onautocomplete 事件?在我的表格上,当您输入邮政编码时,它会在我们的数据库中查找(通过 AJAX),然后获取州和城市(城市和州是下拉菜单,因为邮政编码可以用于多个城市),然后填写为你。我希望在自动填写表格后可以运行。

附:我正在使用 jQuery form validation 插件,如果这很重要的话。

【问题讨论】:

将 autocomplete="on" 添加到
标签,就是这样。现在删除您过去一个小时左右的历史记录并刷新您的页面。希望这可能会有所帮助。问候
如果您有一个 oracle 帐户,请登录该站点,然后单击您姓名旁边的帐户,该页面已关闭自动完成功能,您可以通过查看其源代码来查看。问候 @GagandeepBali: 试过了,没用 =( 我在<form> 中添加了autocomplete="on",在 Chrome 的隐身模式下打开了页面,当我尝试自动完成地址字段时,我得到问题中的错误。 @GagandeepBali:“Oracle 帐户”?你在说什么? “该页面已关闭自动完成功能,您可以通过查看其源代码来查看”这是我的页面,我正在尝试打开自动完成功能开启 您是否禁用了您的 chrome 自动填充选项,所以也要检查它们,通过转到选项、个人资料、自动填充。希望(启用自动填充以通过单击填写网络表单)被选中。问候 【参考方案1】:

问题是表单标签上没有method="POST"

在谷歌搜索该消息后,我发现了一个bug report,其中一个comments 提到了method="POST"

我添加了method="POST",瞧!自动填充有效。

在某些情况下,如果表单没有action,您可能还需要添加。 action="javascript:void(0)" 有效。

注意:自动填充似乎会触发onchange 事件。

注2:至于浏览器是如何知道什么字段是什么的,看这个问题:How to trigger Autofill in Google Chrome?

【讨论】:

我也添加了method=POST到我的表单,但是通知还在...Chrome 21 @PeterO.: <form method="POST" action="javascript:void(0)"> 为我工作。 我也忘了把 autocomplete="on" 放在输入元素中 :) 实际上似乎与 ajax 表单有关——因为就浏览器而言,表单永远不会去任何地方,因此不会存储表单数据。当然,如果这确实是真的,那完全会打击主要的,主要的块 @Chuck 奇迹般地从 Chrome 36.0 开始表单填写现在可以工作了。 Rocket 的洞察力 (<form method="...">) 仍然有效,没有它我怀疑 Chrome 从来没有,也永远不会,工作 ;-)【参考方案2】:

关闭自动完成的选项通常位于表单标签中,请参阅 Mozilla here 的开发者页面。这应该意味着通常删除该属性应该在网页上再次启用它。

关于 AJAX 请求的第二部分,我认为没有监听器,但您可以添加一个函数,例如每 x 秒检查一次字段的值,如果它发生更改,您可以执行您的查找。

【讨论】:

我想开启自动完成功能,而不是关闭。 我说得更清楚了。意思是说,如果你可以通过添加该属性来关闭它,你应该能够通过删除该属性来启用它。 删除autocomplete 属性(或设置autocomplete="on")并没有启用它。我仍然在 Chrome 中收到 This webpage has disabled automatic filling for this form. 消息。 这是一个 .NET 站点(因为消息而询问)?我认为他们使用一些 JavaScript 作为备份来防止自动完成的发生。 @Tom:不,它是 php。该消息来自浏览器(Chrome 16)。

以上是关于启用浏览器的表单自动填充的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器自动填充功能怎么用

Angular 2 - 浏览器自动填充时表单无效

使用自动完成填充表单时,Javascript 不启用按钮

谷歌浏览器 表单自动填写

MS Access:我想要一个启用数据输入的表单来自动填充自动编号,目前我得到的只是(新)

用户记住密码,取消浏览器表单记忆自动填充