標籤:微軟 class orm 網站開發 .net element 內容 2.0 漢字
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,可以把在它的樣式中添加 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”後,自動完成提示便完全不會出現了。
Asp.Net 之 禁用TextBox的記憶功能