您现在的位置是:首页> 网站开发> HTML

避免浏览器自动填充表单的解决方式

  • 3796人已阅读
  • 时间:2019-03-24 15:37:10
  • 分类:HTML
  • 作者:祥哥

一直发现个问题,电脑端还好,就是手机端,浏览器总把记住的帐号密码自动填充到input,type分别等于text和password类型。烦人真烦人。

解决方案:

  1. 添加input隐藏框来填充

这种方法的条件就是:

1、在用户和密码包含在form的情况下,同时包含一个 type="text"和 type="password"元素且不包含readonly和disabled属性,两个元素可以没有name和id属性
2、在没有form的情况下,同时包含一个 type="text"和 type="password"元素且不包含readonly和disabled属性,且两个元素至少都有name或id属性(但name和id可以是任意值但不能是空或空格)。

<input name="old-userName" type="text">
<input name="old-pwd" type="password">
<ul class="ul-info">
    <li><label>账号:</label>
          <input id="userName" type="text">
    </li>
    <li><label>密码:</label>
      <input class="0" type="password">
    </li>
</ul>

然后把input隐藏就好了。

2.第二种方法改一下input

<input type="text" name="username" AUTOCOMPLETE="off"  class="input-text" placeholder="username"/>
<input type="text" name="password" AUTOCOMPLETE="off"  class="input-text" onfocus="this.type='password'" placeholder="password"/>

主要是这两个属性:AUTOCOMPLETE="off"和type="text" onfocus="this.type='password'"。
一般的type="text"的input可以采用AUTOCOMPLETE="off"解决。W3C对autocomplete的属性描述如下:
autocomplete 属性规定输入字段是否应该启用自动完成功能。自动完成允许浏览器预测对字段的输入。
当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项 。
既然type="text"的问题解决了,type="password"的问题其实也可以借鉴它,我们初始化的时候让type="text",并设置AUTOCOMPLETE="off",当input聚焦时,把type从text转化为password。一般表单填充只有初始化的时候,只要我们在初始化的时候转化为text就可以解决问题了。

Top