设置Textbox只读属性,ReadOnly or ContentEditable

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在.net中,对Textbox控件设置只读属性时如果用下面的方式

        TextBox1.ReadOnly = true;

可以看到页面上的TextBox的确不能编辑了,但是在后台代码里却也无法取到TextBox.text了,取到的是null,

正确的做法时设置TextBox的本地属性,contentEditable,方法如下

        TextBox1. Attributes["contentEditable"] = "false";  //注意后面的false是字符串

试一下,这下不能编辑了但是后台一样可以取到TextBox的值。

另外补充一点:这个属性在FF下不起作用

如果要在FF下实现类似功能:请参考下列代码(本人没有测试过),转自http://topic.csdn.net/t/20061118/20/5168309.html


FF不支持,下面的兼容IE,FF,Opera  
   
  <iFrame   id="jia"   src="about:blank"></iFrame>  
  <script>  
  window.onload   =   function(){  
  var   jia   =   document.getElementById("jia");  
  jia.contentWindow.document.designMode="on";  
  jia.contentWindow.document.contentEditable=true;  
  jia.contentWindow.document.open();  
  jia.contentWindow.document.write("<html><head></head><body></body></html>");  
  jia.contentWindow.document.close();  
  }  
  </script>



原帖地址:http://blog.csdn.net/roden/archive/2007/11/17/1889499.aspx

TextBoxReadOnly属性 如果TextBox服务器控件的ReadOnly属性设置为True,在服务器端将得不到TextBox服务器的值。这是为了安全性考虑,在服务器端不处理只读文本框。 @ Page Language="C#" AutoEventWireup="true" CodeFile="Default8.aspx.cs" Inherits="Default8" %> DOCTYPE html PUBL 阅读详情

相关推荐

.NETTextBox控件设置ReadOnly=true后台取不到值三种解决方法

TextBox设置ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内容,这时就比较尴尬了。 刚开始是换成Html 里的  ,不过后来发现这个工作量是很大的, 所以网上搜了下,没找出TextBox ReadOnly="true" 页面填充值取

u013430672的专栏 614

如何让contenteditable元素只能输入纯文本

可以看到contenteditable属性值是有一个plaintext-only纯文本的,但是还是兼容性不太好,火狐不支持。而这两者的区别就在于,一个可以输入富文本,而下面一个只能输入纯文本。不用在意,基本上没有浏览器支持,以后估计也不会有。表示只读,就是普通元素的默认状态啦。会让元素表现得像个文本域一样,可以。

柑橘乌云_ 919

C#的TextBox设为只读属性

ReadOnly:true

qq_40242160的博客 6638

readonly contentEditable

this.txtSelectType.Attributes.Add("ContentEditable", "false");//代替readonly,以便后台可以取 &lt;wbr&gt;&lt;/wbr&gt; contentEditable html中的一个属性设置html的contentEditable=‘true’时,即可开启该元素的编辑模式。   Html中的conten...

qizhanfeng的专栏 423

TextBox设置ReadOnly后回发值丢失解决办法

<!-- alimama_pid="mm_10249644_1605763_4929893"; alimama_titlecolor="707070"; alimama_descolor ="CCCCCC"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="FFFFFF"; alimama_linkcolor="DADA

908

textbox readonly属性后,取值.

前台:  解决办法:   1) protected void Page_Load(object sender, EventArgs e){        txt_userNames.Attributes["contentEditable"] = "false";}  未验证的方法:2.其实如果是设置客户端属性的话,设置客户端的

xtra6714的专栏 817

TextBox的Enable和ReadOnly属性的限制

在以前的ASP.NET 1.x版本中,设置ReadOnlyTextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制。这是为了提高应用程序安全性所考虑的。下面就是TextBox控件获得数据的内部方法,由此可以看出ReadOnly的限制: protected virtual bool LoadPostData(string ...

anaijiao0225的博客 265

TextBoxReadOnly属性设置为True后获取不到值

在ASPNET2中,如果将TextBox控件的ReadOnly后,在客户端采用JavaScript改变其值后,在服务器端获取不到改变后的值,解决办法: 1、不要在页面中设置TextBoxReadOnly属性;直接在Page_Load事件中进行设置TextBox1.Attributes.Add("ReadOnly","True"); 2、在TextBox的HTML标签中加入ContentEd...

weixin_34270865的博客 320

ASP.NETTextBox设置ReadOnly或者Disable后获取不到值的解决办法

<br />设置ReadOnly或者Disable的TextBox 控件,在cs文件中无法获取其值<br />以下为几种解决办法<br />1..cs代码中设置TextBox属性 例如<br /> txtName.Attributes["readonly"] = "true";<br /><br /><br />2.设置TextBoxReadOnly为true,给该控件加上验证控件进行验证<br /><br /><br />3.TextBox的HTML标签中加入ContentEditable="

Dumbbell的专栏 5827

TextBox客户端JS赋值 后台获取(转载)

TextBox客户端JS赋值 后台获取 要求: 客户端不能输入,但可通过js赋值,并在服务器端获取到js赋的值 最近在用VS2005作项目,遇到一个这样的问题,textbox的内容总是无法获得,最后找来找去,原来是readonly搞的鬼 ReadOnly获取或设置一个值,用于指示能否更改 TextBox 控件的内容。 重要事项: 发生回发 时,TextBox 控件(其 ReadOnl...

weixin_34148508的博客 246

textbox readonly的问题

项目中需要把一个地段设置只读的,只让用户选择,而不让用户输入和更改。开始就直接给textbox 加上readonly=true的属性,后来发现提交页面后,在后台取不到textbox的值。 后来查MSDN得知,发生回发时,TextBox 控件(其 ReadOnly 属性设置为 true)的 Text 值被发送到服务器,但是服务器不处理只读文本框。这样可以防止恶意用户更改只读的 Text 值。在回...

weixin_30736301的博客 247

asp.net textbox readonly

有时候,我们不希望用户直接编辑TextBox,而是希望通过客户端脚本的方式来设置内容,一般的做法是设置TextBox属性ReadOnly为true。但在ASP.NET 2.0里有了变化,设置ReadOnly为true的TextBox,在服务器端不能通过Text属性获取在客户端设置的新内容,在Reflector里比较一下LoadPostData的实现.NET 1.1中,bool IPos

logicbiz的专栏 830

设置TextBox控件readOnly="True",后台无法取得客户端TextBox中值的解决方法

TextBox设置属性 ContentEditable="false" 即可。例: <asp:TextBox Id="txt_DeptName" runat="server" Text="" ContentEditable="false"></TextBox> 注意:需要开启页面ViewState视图状态。 转载于:https://www.cnblogs.com/T...

weixin_34407348的博客 1274

TextBox客户端JS赋值 后台获取

C# 后台(.cs)总是无法获得前台textbox的内容 ReadOnly 获取或设置一个值,用于指示能否更改 TextBox 控件的内容。 重要事项: 发生回发时,TextBox 控件(其 ReadOnly 属性设置为 true)的 Text 值被发送到服务器,但是服务器不处理只读文本框。这样可以防止恶意用户更改只读的 Text 值。在回发之间,Text 属性的值保留在视图状态中,除非

顾丽江的专栏 1659

asp.net中asp:TextBox只读属性

  最近缺钱,接了个小活。用的是asp.net。  项目中用到了asp:TextBox控件,原本是想将其设置成内容只读,不能修改,就将其中的ReadOnly属性设置成了true,没有想到后台居然不能直接获得值。  Google了一下,发现居然是属性用错了,汗!  贴一个链接http://blogs.msdn.com/irenak/archive/2006/05/03/589085.as

536
上一篇: Windows 7 Walkthrough, Boot Video and Impressions
下一篇: 用SQL Server Profiler 调试脚本
broze
博客等级 码龄26年 48粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值