瀏覽器中記住密碼功能是很強(qiáng)大的,不過(guò)在做開(kāi)發(fā)時(shí),運(yùn)到一個(gè)很奇怪的是問(wèn)題,如下:
輸入用戶名密碼,提交登錄。瀏覽器會(huì)提示是否記住密碼。
然后在修改密碼頁(yè)面,瀏覽器會(huì)有不同的處理。
chrome/IE等不會(huì)有影響,在修改密碼頁(yè)面,密碼框會(huì)為空,需要手動(dòng)輸入。
但是firefox卻因?yàn)橛涀∶艽a功能,會(huì)自動(dòng)填充到密碼框內(nèi)。
昨天在測(cè)試的時(shí)候發(fā)現(xiàn)了一個(gè)很怪異的問(wèn)題.原本的設(shè)計(jì)邏輯是:當(dāng)用戶修改用戶信息的時(shí)候.密碼一欄默認(rèn)是空.就表示用戶不修改密碼.只有密碼一欄填寫(xiě)了值的時(shí)候后臺(tái)才會(huì)更新密碼.在ie和chrome下測(cè)試都沒(méi)有發(fā)現(xiàn)問(wèn)題.但是在在火狐下其他的修改頁(yè)面.也沒(méi)有問(wèn)題.只是其中一個(gè)編輯頁(yè)面出現(xiàn)了問(wèn)題.就是密碼框的位置,沒(méi)傳值.但是還莫名其妙的顯示了值.如圖:
這是期望的效果:
火狐下的效果是:
部分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的問(wèn)題.
經(jīng)過(guò)測(cè)試.其他瀏覽器沒(méi)有問(wèn)題.發(fā)現(xiàn)火狐下別的頁(yè)面也沒(méi)有問(wèn)題.就這個(gè)頁(yè)面有問(wèn)題.所以我就堅(jiān)信是jsp頁(yè)面的問(wèn)題.經(jīng)過(guò)百般的測(cè)試,發(fā)現(xiàn)了一點(diǎn)線索.就是當(dāng)密碼框上面的管理員姓名為空時(shí),是不會(huì)有問(wèn)題的,只有管理員姓名有值時(shí),才會(huì)將緊挨著他的下一個(gè)密碼框賦值.
我思想向后不明所以.很明顯,后臺(tái)框架是影響不到前臺(tái)的.jsp里面的js我也都刪除過(guò).但是還是有這種問(wèn)題.當(dāng)我最終打算放棄,打算在iteye上逛一會(huì)的時(shí)候.在我登錄iteye的時(shí)候(我這回是用的firefox,我正常情況下,不測(cè)試是不用firefox的,一般都是chrome.因?yàn)榻裉煲恢痹谟胒irefox測(cè)試,順手就用了.)輸入完密碼點(diǎn)登錄的時(shí)候,火狐彈出了提示框:是否記住密碼?
當(dāng)我看到這幾個(gè)字眼的時(shí)候,靈光一閃.我上面的問(wèn)題.是不是firefox的自動(dòng)保存密碼功能搞的鬼那?經(jīng)過(guò)測(cè)試.發(fā)現(xiàn)確實(shí)是這個(gè)可惡的東東搞的鬼(說(shuō)可惡,有點(diǎn)不合適,畢竟保存密碼這個(gè)功能還是很方便的).
解決方案:
我剛發(fā)現(xiàn)這個(gè)問(wèn)題的原因的時(shí)候,感覺(jué)沒(méi)有一舉兩得的好辦法,既想用密碼保存功能,又想指定的字段不要自動(dòng)填充密碼.我半信半疑的打開(kāi)"網(wǎng)頁(yè)制作完全手冊(cè)"查看input type=password 的屬性.找了半天沒(méi)發(fā)現(xiàn)和這個(gè)問(wèn)題有關(guān)的屬性.最后抱著試一試的態(tài)度,給管理員姓名字段加上的:autocomplete=off屬性,就是關(guān)閉了它的自動(dòng)提示功能.沒(méi)想到奇跡就這么發(fā)生了!.
特此將這種怪異的問(wèn)題記錄下來(lái),希望其他的同學(xué)別再為這個(gè)問(wèn)題痛疼.!
我在登陸頁(yè)面嘗試該方式,將用戶名那個(gè)input增加autocomplete=off屬性,雖然記住了密碼,但是不自動(dòng)填充,當(dāng)填寫(xiě)完用戶名后,密碼自動(dòng)被填充。
但是我的修改頁(yè)面沒(méi)有用戶名輸入框,也沒(méi)有最鄰近的輸入框,類似如下圖片
當(dāng)然很明顯,我給密碼框增加autocomplete=off屬性就可以啦。