gpt4 book ai didi

asp.net - 使用 HTML 的奇怪行为 'readonly="readonly "' vs. JavaScript ' element.readOnly = true;'

转载 作者:行者123 更新时间:2023-11-29 20:25:56 25 4
gpt4 key购买 nike

一些背景

因此,我正在完成一个 Web 应用程序的一些增强功能,该应用程序可以对数据进行一些自动插值。用户填写了一些文本框,它们之间的其他文本框具有自动计算的值。接收自动计算值的文本框必须是只读的,以防止用户更改,但不能禁用,否则它们不会在回发时提交。每个文本框旁边还有一个复选框,因此用户可以有意识地选中它以使该字段可写,从而允许他们覆盖内插值。

浏览器:IE 7(不确定在其他浏览器中的表现如何)

问题

设置 readOnly 时使用 JavaScript 的文本框属性,文本框中的值以以下形式提交:我可以在服务器端 (ASP.NET) 使用 myTextBox.Text 查看它它在 Request.Form("myTextBox") 中.

如果我设置 ReadOnly="true"在我的 <asp:TextBox />元素并且不使用 JavaScript 方法,文本框中的值可从myTextBox.Text获得(我假设它从未进入 ViewState ),但它正在以以下形式提交: Request.Form("myTextBox")有一个值。

我的问题

这到底是怎么回事?这是设计使然吗?这是浏览器的问题吗?我发现错误了吗?令人恼火的是,我必须有一些额外的 JavaScript 才能在页面加载时最初禁用文本框的可写性,以使我的应用程序正常工作。

谢谢!

最佳答案

这是设计使然。作为 ASP.NET 的一项安全功能,在服务器上将其设置为只读将使其保持只读状态,而不管客户端发生什么情况。如果您希望他们能够覆盖它并实际提交一个值,那么它在服务器上并不是真正只读的,只是有条件地在客户端上。您可以在他们选中复选框以更改服务器上的只读属性时执行回发,或者使用此 ASP.NET 代码在客户端上仅设置只读属性:

MyControl.Attributes.Add("readOnly","readOnly")

关于asp.net - 使用 HTML 的奇怪行为 'readonly="readonly "' vs. JavaScript ' element.readOnly = true;',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com