如何在Safari的地址栏中禁用自动填充功能?

我有一个表单,我已经实现了一个自动提示下拉菜单(通过jQueryUI),以便用户可以在我们的应用程序中搜索联系人并让他们的信息自动填充。 我希望窗体上的自动完成功能被禁用,但Safari(在macOS上)忽略了autocomplete="off" 。 我已经在输入字段以及<form>标签中指定了自动完成功能。 此表单适用于朋友的实际邮寄地址,而Safari则显示来自Contacts.app的匹配联系人...但它覆盖在我的自动提示下拉列表的顶部。 我如何强制Safari停止显示此下拉菜单?

在这里输入图像描述

<form accept-charset="UTF-8" action="/listings/sailing/create_customized_card" autocomplete="off" class="new_greeting_card" id="new_greeting_card" method="post">
...
  <li>
    <input autocomplete="off" autocorrect="off" class="validate required" id="to_name" name="delivery[to_name]" placeholder="First &amp; last name" size="30" type="text" />
  </li>
  <li>
    <input autocomplete="off" autocorrect="off" class="validate required" id="to_address_street_1" name="to_address[street_1]" placeholder="Street 1" size="30" type="text" />
  </li>
  <li>
    <input autocomplete="off" autocorrect="off" id="to_address_street_2" name="to_address[street_2]" size="30" type="text" />
  </li>
  <li>
    <input autocomplete="off" class="validate required city" id="to_address_city" name="to_address[city]" placeholder="City" size="30" type="text" />
    <select class="validate required state" id="to_address_state" name="to_address[state]">
    <option value="AK">AK</option>
    ...
    </select>
    <input autocomplete="off" class="validate required zip" id="to_address_zip_code" name="to_address[zip_code]" pattern="(d{5}([-]d{4})?)" placeholder="Zip" size="30" type="text" />
  </li>
...
</form>

仅供参考 - 我知道大多数浏览器忽略用户名和密码字段的autocomplete="off" ,但这些是联系人的地址字段。


看来你不能以类似的方式禁用自动完成功能。 Safari会在元素id中查找某些关键字,如果有“名称”,“地址”,“电子邮件”等内容,它会启用自动完成功能(在Safari 10.1.1上测试)。
所以,我找到的唯一简单解决方法是使用不会触发自动完成功能的不同id

编辑:我发现Safari也使用placeholder属性来决定是否启用自动完成功能。


我有同样的问题,重叠下拉菜单。 你可以做的是改变'名称'字符串(在输入的占位符中),方法是将一个或一些字符改为同义字。

我所做的就是改变'ɑ'字符的'a'字符。 看起来有点奇怪,但值得摆脱恼人的重叠。

只要确保你在html代码中记录它。

另外,我注意到Safari上使用了字段在输入上方的P标签中的描述来触发自动完成功能。

链接地址: http://www.djcxy.com/p/26461.html

上一篇: How to disable autocomplete in address fields for Safari?

下一篇: Autocomplete off vs false?