今天被一個小小的前端密碼屬性弄的頭疼,現(xiàn)代的瀏覽器在你登錄后會讓你保存賬號和密碼,然后下次使用時可以非常方便幫你自動填充好賬號和密碼,對用戶來說的確很方便,但是有時候開發(fā)人員不希望自動填充密碼,而且自動填充對有的瀏覽器識別會出現(xiàn)問題,比如登錄后其他頁面的input如果有有password屬性就會被填充,但明明就不是一個地方的密碼......
下面說正題,input標簽設(shè)置 type="password"屬性時,煩人的自動填充就來了,我嘗試了各種網(wǎng)上的辦法:
autocomplete="new-password"
然并卵,autocomplete 屬性的行為標準本來就沒有規(guī)范化,測試常用的360以及谷歌瀏覽器居然都無效,攤手,不知道為什么有人可以成功。這邊還是記錄下,也許其他小伙伴有幸可以成功......
添加隱藏input標簽
在 password 之前加一個隱藏標簽 <input type="password" style="display:none">即可。
這個本人沒有測試過,但是據(jù)說也是和上面的方法一樣,有的瀏覽器支持,有的瀏覽器依舊不行。
設(shè)置input為只讀
這是本人現(xiàn)在使用的方法,既然瀏覽器在頁面載入完后會進行自動填充,那我就通過readonly屬性,直接把password設(shè)置為禁止輸入,那自然也不會產(chǎn)生自動填充,保險起見通過短暫延時后再移除input的只讀屬性readonly,這樣就跳過了自動填充的步驟,這個方法也不需要考慮瀏覽器的問題。
<script>
setTimeout(function remve(){
var pass=document.getElementById("pass");
pass.removeAttribute("readonly");
},2000);
</script>
<input type="password" id="pass" readonly="readonly" >