当前位置: 首页 > 知识库问答 >
问题:

Chrome自动填充涵盖谷歌地图API v3的自动完成

陶树
2023-03-14

我正在使用Google Maps Javascript v3在HTML输入字段上设置自动完成,如下所示:

http://imgur.com/Rm6X2FI.png-(带自动填充)

我遇到的问题是Chrome的自动填充像这样覆盖了地图自动完成:

http://imgur.com/7a2QM7L.png-(带自动填充)

几个月前,我在网上找到了一个解决方案(参考:禁用Chrome自动填充),但是这个解决方案似乎不再有任何效果。

<input type="text" name="address" id="address_fake" autocomplete="off" style="display:none">
<input type="text" name="address" id="address" autocomplete="off" placeholder="Address" />

有什么方法可以阻止Chrome的自动填充显示在谷歌地图自动完成列表的顶部?

编辑:停止Google chrome自动填充输入无法解决我当前的问题。问题在于输入字段上的Chrome Autofill下拉列表,而不是输入字段自动填充自动填充值。

共有3个答案

弘承运
2023-03-14

多亏了GSTAR。我使用下面的代码代替Jquery

<input type="text" value="" id="address" class="form-control" placeholder="Enter a location" autocomplete="new-password" onfocus="this.setAttribute('autocomplete', 'new-password');">
谭勇
2023-03-14

这也让我发疯了。有同样的问题。我们使用脚本来提取字段值,供用户从中选择,并且不希望浏览器的auto-Anwhere将其搞乱。Chrome似乎是我们可以使用的bug(最新版本42.0.2311.135 m),Firefox(FF)。

因此,我们必须处理浏览器的自动完成和Chrome的自动填充。如果我加上:

如果您将autocomplete=“off”单独添加到每个字段,则再次在FF中工作,但对于在Chrome中具有此属性的输入字段,autocomplete处于禁用状态,但autofill仍会露出丑陋的头部。

现在,奇怪的是,如果您将单个输入字段中的值从“off”更改为“false”,那么它似乎会震动Chrome,对于设置为autocomplete=“false”的字段,您只会看到autocomplete值(如果之前在字段中输入了任何内容),而所有其他输入字段都不会显示任何内容!您还可以将该值设置为no或xx或其他任何值,并且该值对于autocomplete来说似乎是无效的,表单会做出奇怪的反应。如果您有5个字段,并将其设置为第三个字段,则字段1、2、4和5为空,但字段3显示自动完成。

这是一个可以复制和处理的示例(尝试将“自动完成”属性移动到不同的字段,并查看其反应):

<!DOCTYPE html>
<html>

<head>
  <title>Signup</title>
</head>

<body>
  <form autocomplete="off" method="post">
    First name:
    <input name="Firstname" type="text">
    <br />Last name:
    <input name="Lastname" type="text" style="width: 124px">
    <br />Address:
    <input autocomplete="false" name="Address" type="text" style="width: 383px">
    <br />Phone number:
    <input name="Phone" type="text">
    <br />E-mail:
    <input name="Email" type="text" style="width: 151px">
    <br />
    <input type="submit">
  </form>
</body>

</html>

我的解决方案是关闭autocomplete和Chrome的autofill(您应该能够将隐藏的输入字段放在submit的顶部或底部)。加上这个

<!DOCTYPE html>
<html>

<head>
  <title>Signup</title>
</head>

<body>
  <form autocomplete="off" method="post">
    <input autocomplete="false" name="hidden" type="text" style="display:none;">
    <br />First name:
    <input name="Firstname" type="text">
    <br />Last name:
    <input name="Lastname" type="text" style="width: 124px">
    <br />Address:
    <input name="Address" type="text" style="width: 383px">
    <br />Phone number:
    <input name="Phone" type="text">
    <br />E-mail:
    <input name="Email" type="text" style="width: 151px">
    <br />
    <input type="submit">
  </form>
</body>

</html>

一句话:Chrome确实坚持自动完成=关闭,但Chrome的自动填充是问题所在。希望这有帮助。

司徒茂实
2023-03-14

以上答案都不适用于我(Chrome64.0.3282.186,x64窗口)。

TL;DR:Google地图代码正在将autocomplete属性更改为off,因此即使您将其设置为new password,您仍将获得自动填充。我使用的方法是监听该属性上的突变,然后覆盖它。注意:在调用GoogleMaps后简单地更改属性是不起作用的。

在初始化Google Maps Autocomplete之前设置一个MutationObserver,该服务器会立即停止侦听变异,然后将属性设置为新密码

    var autocompleteInput = document.getElementById("id-of-element");

    var observerHack = new MutationObserver(function() {
        observerHack.disconnect();
        $("#id-of-element").attr("autocomplete", "new-password");
    });

    observerHack.observe(autocompleteInput, {
        attributes: true,
        attributeFilter: ['autocomplete']
    });
 类似资料:
  • 我有一个,供用户更改电子邮件 如何停止Chrome自动填充输入。 Chrome记住登录页面的输入数据,并自动填写帐户设置页面。 Chrome自动填充更改我的电子邮件

  • 我在几个表单上遇到了chrome自动填充行为的问题。 表单中的字段都有非常常见和准确的名称,如“email”、“name”或“password”,它们还设置了。 autocomplete标志已成功禁用了autocomplete行为,在该行为中,当您开始键入时会显示下拉值,但没有更改Chrome将字段自动填充为的值。 这个行为是可以的,除非chrome不正确地填充输入,例如用电子邮件地址填充电话输入

  • 有没有办法只显示谷歌地图api自动完成字段中的城市? 目前,我们正在使用地理代码,但不幸的是,我们甚至收到了国家和地址。 我们甚至尝试了以下代码 自动完成=新谷歌。地图。地方。自动完成(输入、选项); 我们收到的错误是 未捕获的TypeError:无法读取未定义的属性“Autocomplete” --谢谢你

  • 我们如何禁用Chrome的自动填充功能在某些

  • 问题内容: 就像是有什么,但对?我要显示的数据是使用的关联。 我已经尝试使用过,但是在这种情况下,我必须在hibernate状态下使用它,这需要我指定using,并且每当我检索到through时,列表中的元素之间都会有空格,具体取决于。 我需要自动填充集合,因为我需要在创建时动态生成。当我使用plain时,得到以下内容: 还有其他解决方案吗? 编辑 我正在尝试实现动态表格 问题答案: 您无法在MV

  • 我需要一些帮助来绘制我正在绘制的地图。地图并不特别复杂,因为我是一个初学者,我有一堆带有信息窗口的标记(完成后还会有更多标记),单击标记或选择页面HTML端下拉菜单的相应项时可以打开这些标记。 当信息窗口打开时(在HTML菜单中单击或选择),我想做但自己找不到的是在地图上自动居中标记。我假设有某种函数可以分配给click或infowindow打开事件,但无法确定是哪种函数以及如何实现它。 我的代码