1.TextBox属性中ReadOnly='true' 和 Enabled='false' 区别
Html服务器控件使用一个派生于HtmlControl基类(完整类名System.Web.UI.HtmlControls)的类,此类控件中只有Disabled属性.
按照W3C的规范:http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.12
ReadOnly 属性的TextBox在客户端会展现成这样的标记:
<input readonly = "readonly">
设置为readonly的input将会有下面的限制:
<1> 能接受焦点但不能修改<2> 使用tab键进行导航<3> 可能是successful的
Enabled 属性的TextBox在客户端会展现成这样的标记:
<input disabled="disabled">
设置为disabled的input将会有下面的限制:
<1> 能接受焦点<2> 使用tab键时将被跳过<3> 可能不是successful的
只有successful的表单元素才是有效数据,也即是可以进行提交.disabled和readonly的文本输入框只能通过脚本进行修改value属性
2.TextBox 中 TextModel='Password'
如果需求中要给密码框赋值.使用TextBox.Text ="XXX"; 是没有效果的.
需要使用后台注册:txtPassword.Attributes.Add("Value", "XXXXXX");
3.保留用户输入
TextBox 服务器控件不存在这种情况,但当你使用<input type="text" /> 客户端控件时,如果进行跳转,前进后退操作,值将被清空.
需要设置:<input type="text" style="behavior:url(#default#savehistory);" />
4.只能为数字(有闪动)
<asp:TextBox ID="TextBox1" runat="server" onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ></asp:TextBox>
测试:
5.只能输入英文和数字(有闪动)
<asp:TextBox ID="TextBox1" runat="server" onkeyup="value=value.replace(/[\W]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"></asp:TextBox>
测试: