关于TextBox属性ReadOnly=“true”时,后台无法获取js重新对TextBox的赋值问题
2018-03-16 13:54
846 查看
在我调试项目的过程中发现,TextBox的属性设为ReadOnly时,后台无法获取其回传的值:
查阅相关资料发现,在ASP.NET2.0中,为了提高应用程序的安全性, 对ReadOnly做了限制,以下为TextBox控件获取数据的内部方法:
由此可以看出对ReadOnly的限制。解决办法有以下三种:
1、寻找ReadOnly的替换方法,eg通过onfocus=”this.flur();”来模拟
2、前台继续设置ReadOnly属性,不过后台通过Request来取值:
3、不在前台设置ReadOnly属性,在Page_Load()中进行设置:
<asp:TextBox ID="TextBox1" ReadOnly="true" runat="server"></asp:TextBox> $('#TextBox1').val('Test'); //最后取值时,发现无法获取 string T = this.TextBox1.Text;
查阅相关资料发现,在ASP.NET2.0中,为了提高应用程序的安全性, 对ReadOnly做了限制,以下为TextBox控件获取数据的内部方法:
protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection) { base.ValidateEvent(postDataKey); string text1 = this.Text; string text2 = postCollection[postDataKey]; if (!this.ReadOnly && !text1.Equals(text2, StringComparison.Ordinal)) { this.Text = text2; return true; } return false; }
由此可以看出对ReadOnly的限制。解决办法有以下三种:
1、寻找ReadOnly的替换方法,eg通过onfocus=”this.flur();”来模拟
2、前台继续设置ReadOnly属性,不过后台通过Request来取值:
string Test = Request.Form["TextBox1"];
3、不在前台设置ReadOnly属性,在Page_Load()中进行设置:
this.TextBox1.Attributes.Add("readonly", "true");
相关文章推荐
- TextBox ReadOnly / Enabled 时,后台无法取值问题
- 设置TextBox控件readOnly="True",后台无法取得客户端TextBox中值的解决方法
- JS赋值设置了readonly=true的TextBox时,后台取不到值的问题
- ASP.Net 关于前台JS给input赋值后,runat="server" 后台利用ID.Value还是获取不到的问题
- JS赋值设置了readonly=true的TextBox时,后台取不到值的问题
- TextBox客户端JS赋值 后台获取
- ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
- TextBox客户端JS赋值 后台获取(转载)
- ASP.NET中 TextBox控件使用 ReadOnly="true" 属性
- ASP.NET textbox ReadOnly="true" 值改变取值问题
- TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
- TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取
- TextBox客户端JS赋值 后台获取
- ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
- IE6,IE7 关于js动态调整img src属性,无法正确发出异步请求的问题
- ASP.NET 中TextBox设置ReadOnly="true" 无法取到值的做法
- 解决用JS修改服务器端控件值后在后台无法获取修改后值的问题
- php、asp.net关于后台设置的cookie前台JS获取时出现中文乱码问题解决
- ASP.NET中 TextBox控件使用 ReadOnly="true" 属性
- TextBox 禁止客户端输入 前台通过JS赋值 并在后台获取