前言
一般而言,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>