【发布时间】:2009-06-29 20:58:36
【问题描述】:
一些背景
因此,我正在完成一些对数据进行自动插值的 Web 应用程序的增强。用户填写了一些文本框,它们之间的其他文本框具有自动计算的值。接收自动计算值的文本框必须是只读的以防止用户更改,但不能禁用,否则它们不会在回发时提交。每个文本框旁边还有一个复选框,因此用户可以有意识地选中它以使字段可写,从而允许他们覆盖插值。
浏览器:IE 7(不确定在其他浏览器中的表现如何)
问题
当使用 JavaScript 设置文本框的 readOnly 属性时,文本框中的值与表单一起提交:我可以在服务器端 (ASP.NET) 使用 myTextBox.Text 看到它,它在 Request.Form("myTextBox") .
如果我在 <asp:TextBox /> 元素上设置 ReadOnly="true" 并且不使用 JavaScript 方法,则文本框中的值是 NOT 可从 myTextBox.Text 获得(我假设它从未它进入ViewState),但它正在与表单一起提交:Request.Form("myTextBox") 有一个值。
我的问题
这到底是怎么回事?这是设计使然吗?这是浏览器的问题吗?我发现错误了吗?令人讨厌的是,我必须有一些额外的 JavaScript 来在页面加载时禁用文本框的可写性以使我的应用程序正常工作。
谢谢!
【问题讨论】:
-
您能用您的 .aspx 文件样本更新您的问题吗?我刚刚构建了一个小测试(使用 VS2005,.NET 2.0),并在 .aspx 中设置了
我仍然能够在代码隐藏中通过 txtTest.Text 提交表单时阅读它。
标签: asp.net javascript internet-explorer cross-browser readonly