【问题标题】:How can I deactivate remembering values for inputs?如何停用输入的记忆值?
【发布时间】:2016-07-06 09:27:06
【问题描述】:

我有这样的输入:

<input name="username" placeholder="Email" type="email" autocomplete="off" />

如您所见,我已将 autocomplete 属性设置为 off。但是当我打开那个页面时,之前的值仍然存在:

那么我该如何避免呢?实际上我的问题是丑陋的背景颜色输入。当我改变它的值时,它看起来像这样:

无论如何,我怎样才能停用输入缓存?

【问题讨论】:

  • 最简单的方法是删除name属性。
  • @Jeff 那么我怎样才能在 PHP 中获取输入值呢? $_POST['what name?'];
  • 您的 Chrome 中似乎已存储了登录凭据。
  • 你必须通过JS拦截表单提交来破解它,构造一个隐藏的表单并提交它。

标签: html css input browser-cache


【解决方案1】:

尝试执行以下操作:

<form autocomplete="off" ...></form>

它可能会起作用......或者你也可以这样做。

$('#textfield').attr('autocomplete','off');

或使用autocomplete="false",而不是autocomplete="off"

【讨论】:

    【解决方案2】:

    正如您在问题中提到的,输入框的背景颜色是您的问题,那么您可以按照自己的方式更改它。

    你可以使用:

    input:-webkit-autofill {
       -webkit-box-shadow: 0 0 0px 1000px white inset;
    }
    

    这会将背景更改为白色。或者您可以将其更改为您喜欢的任何颜色。

    【讨论】:

      【解决方案3】:

      大概你在页面上也有一个密码字段?如果不是,您可以生成一个随机字段名称并从请求对象的键/值集合中获取值(可能使用已知前缀)。

      在查看了与禁用自动完成有关的所有答案并尝试了大约 20 种组合后,发现以下内容适用于所有当前浏览器(包括最新的 Firefox、Chrome、IE 11 和 IE Edge)

      在表单顶部放置 2 个没有名称和标签的虚拟输入(1 个文本和 1 个密码),但将它们设置为隐藏(例如,放置在屏幕外,但实际上不是 display: none

      例如

      <input tabindex="-1" style="left: -9999px;" type="text">
      <input tabindex="-1" style="left: -9999px;" type="password">
      

      即使是最智能的浏览器,它们会查找第一个密码字段(无论其名称如何)并将自动完成附加到上一个输入,也可以使用此功能。

      【讨论】:

        【解决方案4】:

        当它只是关于设计时尝试

        input:-webkit-autofill {
            transition: background-color 5000s ease-in-out 0s;
        }
        

        在你的 CSS 中

        不幸的是,Google chrome 会在每个新版本中更改其自动完成设置。当您现在想禁用它们时,您必须每次都更新您的解决方案以防止在其他版本中出现它

        编辑:
        您唯一能做的就是停止自动填充和记住密码完全是给出没有“名称”或“密码”的ID

        【讨论】:

          猜你喜欢
          • 2014-07-20
          • 1970-01-01
          • 2020-09-29
          • 1970-01-01
          • 1970-01-01
          • 2018-06-25
          • 2011-09-18
          • 2022-11-17
          • 2020-11-07
          相关资源
          最近更新 更多