Asp.Net 之 禁用TextBox的記憶功能


  IE提供了一個自動完成功能可以記憶我們的輸入內容(如登錄帳號等),方便下一次快速地錄入類似資料。這確實是一個非常友好的功能,在操作時只需用鼠標雙擊文本框或輸入前幾個字符,系統會自動列出以前的錄入歷史供你選擇,大大提高錄入速度及准確性。相信大多數IE的用戶都啟用了這項功能。

  然而作為網站開發者來說,並不希望什么資料都記憶在用戶的電腦上(如銀行帳號和其它重要的帳號及密碼),但是我們又不能要求用戶禁用自動完成的功能。幸好IE5.0后為 INPUT type=password, INPUT type=text, FORM 等控件加入了一個 AUTOCOMPLETE 的屬性,要禁止控件自動完成功能,只需把AUTOCOMPLETE設為off即可,如:

  A 整個表單禁止自動完成

<FORM method=post action="submit.asp" AUTOCOMPLETE="OFF">  

  B 禁止文本框自動完成

<input type="text" name="creditcard" maxlength="16" AUTOCOMPLETE="OFF">

  C 在腳本中禁止自動完成

function init(){ element.setAttribute("AutoComplete", "off");}  

  D 如果要禁止文本框使用輸入法,可以把在它的樣式中添加 ime-mode : disabled 即可,但是這樣並不能禁止輸入漢字,因為用戶還是可

以通過復制粘貼輸入漢字的,如:

<input type=text style="ime-mode: disabled ; " mce_style="ime-mode: disabled ; "> 

  微軟的.NET PASSPORT 就是這樣實現的,但是因該還會有其它的方法,因為在YAHOO 和 GMAIL的實現方法就不一樣。

   TextBox控件有個看似很小但卻常帶來困擾的小“改良”,就是“自動完成”(AutoComplete)。何謂自動完成呢?也就是TextBox會記憶用戶曾經輸入過的文字,當下次再輸入時就會自動提示相關字詞,最常見的是用戶登錄網站時就會自動帶出帳號密碼。

  這個功能在最早被發明時大家覺得很方便很好用,但隨着信息安全意識的加強,這個功能有時不但不討人喜歡,反而有點令人厭惡,現在無論是在家中、網吧還是公司,多人共享一台計算機的機會很多,而也是由於TextBox的自動完成在作祟的緣故,他人要看你的E-mail甚至假借您的帳號登錄網頁並非難事,只要在TextBox中選取你的帳號后,密碼通常會一並自動帶出。

  如何解決呢,在ASP.NET 2.0的TextBox控件內置的 AutoCompleteType 屬性可以輕易解決這個問題,只要將TextBox的AutoCompleteType設置為“Disable”后,自動完成提示便完全不會出現了。  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM