瀏覽器中記住密碼功能是很強大的,不過在做開發(fā)時,運到一個很奇怪的是問題,如下:
輸入用戶名密碼,提交登錄。瀏覽器會提示是否記住密碼。
然后在修改密碼頁面,瀏覽器會有不同的處理。
chrome/IE等不會有影響,在修改密碼頁面,密碼框會為空,需要手動輸入。
但是firefox卻因為記住密碼功能,會自動填充到密碼框內(nèi)。
昨天在測試的時候發(fā)現(xiàn)了一個很怪異的問題.原本的設計邏輯是:當用戶修改用戶信息的時候.密碼一欄默認是空.就表示用戶不修改密碼.只有密碼一欄填寫了值的時候后臺才會更新密碼.在ie和chrome下測試都沒有發(fā)現(xiàn)問題.但是在在火狐下其他的修改頁面.也沒有問題.只是其中一個編輯頁面出現(xiàn)了問題.就是密碼框的位置,沒傳值.但是還莫名其妙的顯示了值.如圖:
這是期望的效果:
火狐下的效果是:
部分jsp代碼是:
Java代碼
:
<input type="text" id="admi_name"
name="admi_name" value="${adminBean.admi_name}" />
<fmt:message
key="shop.member.password.title">:
<input type="password" id="admi_password"
class="{rangelength:[6,8]}" name="admi_password" />
<fmt:message
key="shop.member.password.confirm.title">:
<input type="password"
name="admi_password_confirm"
class="{equalTo:'#admi_password'}" />
并且保證不是js的問題.
經(jīng)過測試.其他瀏覽器沒有問題.發(fā)現(xiàn)火狐下別的頁面也沒有問題.就這個頁面有問題.所以我就堅信是jsp頁面的問題.經(jīng)過百般的測試,發(fā)現(xiàn)了一點線索.就是當密碼框上面的管理員姓名為空時,是不會有問題的,只有管理員姓名有值時,才會將緊挨著他的下一個密碼框賦值.
我思想向后不明所以.很明顯,后臺框架是影響不到前臺的.jsp里面的js我也都刪除過.但是還是有這種問題.當我最終打算放棄,打算在iteye上逛一會的時候.在我登錄iteye的時候(我這回是用的firefox,我正常情況下,不測試是不用firefox的,一般都是chrome.因為今天一直在用firefox測試,順手就用了.)輸入完密碼點登錄的時候,火狐彈出了提示框:是否記住密碼?
當我看到這幾個字眼的時候,靈光一閃.我上面的問題.是不是firefox的自動保存密碼功能搞的鬼那?經(jīng)過測試.發(fā)現(xiàn)確實是這個可惡的東東搞的鬼(說可惡,有點不合適,畢竟保存密碼這個功能還是很方便的).
解決方案:
我剛發(fā)現(xiàn)這個問題的原因的時候,感覺沒有一舉兩得的好辦法,既想用密碼保存功能,又想指定的字段不要自動填充密碼.我半信半疑的打開"網(wǎng)頁制作完全手冊"查看input type=password 的屬性.找了半天沒發(fā)現(xiàn)和這個問題有關的屬性.最后抱著試一試的態(tài)度,給管理員姓名字段加上的:autocomplete=off屬性,就是關閉了它的自動提示功能.沒想到奇跡就這么發(fā)生了!.
特此將這種怪異的問題記錄下來,希望其他的同學別再為這個問題痛疼.!
我在登陸頁面嘗試該方式,將用戶名那個input增加autocomplete=off屬性,雖然記住了密碼,但是不自動填充,當填寫完用戶名后,密碼自動被填充。
但是我的修改頁面沒有用戶名輸入框,也沒有最鄰近的輸入框,類似如下圖片
當然很明顯,我給密碼框增加autocomplete=off屬性就可以啦。