我有一个表单字段,用户在其中输入他们的地址。为了让用户的生活更轻松,我在该字段中添加了 google place API 地址自动完成功能。在您开始使用 native 浏览器自动完成之前,使用这种方法一切都很好。如果用户在他们的网络浏览器上设置了自动完成功能,我显然希望他们能够使用它......通过表单越快越好。然而,当用户位于我的地址字段时, native 自动完成和谷歌地点自动完成最终会相互竞争( native 位于谷歌地点之上)。它看起来很糟糕,而且对于任何想要使用 GP 自动完成功能的人来说也是一种糟糕的用户体验。
我的自然倾向是简单地在地址字段上切换 autocomplete="off"
(使用 focus
和 blur
):
$search_address
//don't allow autocomplete when users are in this field as it messes with GP input
.on('focus', function(e){
$(this).attr('autocomplete', 'off'); console.log('autocomplete off');
})
//if the user is not in the field, allow autocomplete, or it messes with native AutoFill
.on('blur', function(e){
$(this).removeAttr('autocomplete'); console.log('autocomplete on');
});
我可以从控制台日志中看出这些正在触发,但是 native 浏览器自动完成功能并未被删除。我不知道如何处理这种情况。有人想出一种方法来做到这一点或者可能知道为什么这不起作用吗?
最佳答案
不确定这是否重要,但您可能想尝试使用 prop 而不是 attr:
$(this).prop("自动完成","关闭");
我这样做了,它在 Chrome 中对我有用。
关于javascript - 打开/关闭表单字段的自动完成功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681864/