前言
一般而言,Textbox中有兩個屬性可以對其進行防止編輯的設定,這是最基礎的知識,也是我要提出的前兩種方法。而后兩種方法實際為一種,但可以應用於不同環境中。
一、ReadOnly屬性
這樣設置,Textbox控件則限制不能輸入,但可以讀取已有文本,樣式也與正常使用的Textbox一致。
1、在前端設置Readonly為true,樣式如下:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true" Text="測試"></asp:TextBox>
2、在后台設置Readonly為true,樣式如下:
TextBox1.ReadOnly = true;
二、Enabled屬性
設置此屬性會將Textbox控件變成反灰樣式,不可點擊。
1、在前端設置Enabled為false,樣式如下:
<asp:TextBox ID="TextBox1" runat="server" Enabled="false" Text="測試"></asp:TextBox>
2、在后台設置Readonly為true,樣式如下:
TextBox1.Enabled= false;
三、onfocus方法
設置JS的事件,onfocus事件指的的是光標移到到此控件,this.blur()是將光標移開,如此便能夠達到不能編輯的目的,代碼如下。
<asp:TextBox ID="TextBox1" runat="server" Text="測試" onfocus="this.blur();"></asp:TextBox>
補充:設置TextModel樣式
使用CSS代碼,設置TextModel屬性。與上面方法結合,這樣設置的好處是在一些瀏覽器中不僅能實現不能編輯的目的,還能夠保證原有的"X"號存在,保留清除控件內容的功能。經檢測,在IE瀏覽器不支持此功能,但Google瀏覽器可以。
前端代碼如下:
<asp:TextBox ID="TextBox1" runat="server" Text="測試" TextModel="search" onfocus="this.blur();"></asp:TextBox>
Css樣式如下:
<style> Input[type=search]::-webkit-search-cancel-button { -webkita-appearance: searchfield-cancel-button; } </style>
四、onkeydown方法
設置onkeydown返回false,實際是使得控件不能由鍵盤輸入,保留刪除功能,同時可以通過剪切復制來刪除賦值。此事件進一步設定可以實現限制僅數字輸入或者僅字母輸入等功能。
前端代碼如下:
<asp:TextBox ID="TextBox1" runat="server" Text="測試" onkeydown="return false;"></asp:TextBox>