现在的位置: 首页 > 综合 > 正文

控件TextBox — 有趣的属性

2012年11月06日 ⁄ 综合 ⁄ 共 1258字 ⁄ 字号 评论关闭

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>
测试:

 

 

 

抱歉!评论已关闭.