在chrome浏览器中,浏览器对于[1]type为password和text的、[2]带有name或者id属性的<input>标签会有自动填充表单功能,虽然会给用户记住密码带来一定的便利,但是对于布局会有一定的bug。因此更多时候,开发人员选择取消这一功能。
查询各种资料总结出来的方案有:
1. 添加 autocomplete='off' 属性,不让浏览器自动填充。(验证失效)
2. 添加 autocomplete='new-password' ,参考自网易邮箱登录的处理方式。(验证失效)
3. 添加 readonly='readonly' 或者 disabled='disabled' 属性。(可用,但是填充功能需要监听focus)。
4. 在<input id='ipt' 或者 name='ipt' value='' /> 标签之前写一个同样的标签,<input id='ipt' name='ipt' value='' style='display:none'>,使得自动填充作用于未显示的元素上。(有效)
4. 去掉name和id属性,使用class来作为选择器的替代,不会进行自动填充。(亲测 chrome 69 有效)
综上,如果不想要填充功能,去除name和id属性是最简单有效的方法。