jQuery vs Safari自动完成

时间:2017-05-03 17:45:12

标签: javascript autocomplete safari

我使用jQuery ui自动完成插件(https://jqueryui.com/autocomplete/)。

在Safari上我得到两个自动完成列表:

  • 一个来自jQuery(预期,一个下面有一个项目)
  • 一个来自浏览器(不需要的,一个顶部带有4个项目)

screenshot

我尝试使用<input type="text" autocomplete="off">,但仍然会显示Safari自动填充功能。

我该怎么办才能让它消失?

谢谢!

1 个答案:

答案 0 :(得分:1)

可悲的是,所有主流浏览器都停止了对autocomplete =&#34; off&#34;属性。

根据MDN您可能会有一些运气将自动完成设置设置为无效值,但根据浏览器版本,此解决方案可能会被命中或错过。

  

在某些情况下,即使autocomplete属性设置为off,浏览器也会继续建议自动完成值。对于开发人员来说,这种意想不到的行为非常令人费解真正强制非自动完成的技巧是为属性分配一个随机字符串,例如:

autocomplete="nope"

一些用户似乎取得成功的另一种解决方法如下。发表评论并告诉我这是否适合您。

//覆盖Safari,Chrome和IE11决定忽略自动完成功能:关闭 //在您希望跳过自动填充的表单上,将所有密码字段更改为type = private //需要jQuery

$(function() {
  $('input[type="private"]').focus(function(e){
    $(this).prop('type', 'password');
  });
  $('input[type="private"]').parents('form').submit(function(){
    $(this).find('input[type="password"]').hide().prop('type', 'private');
  });
});