以Chrome为例,当浏览器遇到type="text"与type="password"的input标签紧邻时,会触发浏览器自动填充行为,默认为浏览器颜色背景。Firefox和360浏览器的处理方式是:只要检测到页面里有满足填充机制的,不管是不是display: none的,只要检测到就直接往里填充。
解决方案
方案一:
使用HTML5新属性autocomplete="off"但禁用自动填充。这个属性好像是Firefox发起的,并不是标准属性,所以这块主要是针对IE和火狐浏览器生效。谷歌不承认这个属性,所以在谷歌浏览器上并没有产生任何效果。
方案二:
在表单元素的前面插入两个替身使者,用来欺骗浏览器
<!-- 浏览器认为的 -->
<input disabled type="text" style="width:0;height:0;border:0">
<input type="password" disabled style="width:0;height:0;border:0">
<!-- 用户看见的 -->
账号:<input name="email" placeholder="手机号或邮箱">
密码:<input type="password" name="pwd">
不过这个在谷歌中输入密码时还是会提示填充密码
方案三:
控制type根源上解决问题
<input :type="pass?'password':'text'" v-model="pass"></input>