我正在使用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下拉列表,而不是输入字段自动填充自动填充值。
多亏了GSTAR。我使用下面的代码代替Jquery
<input type="text" value="" id="address" class="form-control" placeholder="Enter a location" autocomplete="new-password" onfocus="this.setAttribute('autocomplete', 'new-password');">
这也让我发疯了。有同样的问题。我们使用脚本来提取字段值,供用户从中选择,并且不希望浏览器的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的自动填充是问题所在。希望这有帮助。
以上答案都不适用于我(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打开事件,但无法确定是哪种函数以及如何实现它。 我的代码