【问题标题】:Disabled textbox/textarea still active禁用的文本框/文本区域仍处于活动状态
【发布时间】:2011-01-18 06:04:13
【问题描述】:

我通过 vb.net 禁用了一个多行文本框:

myTxtA.enabled= false

它输出的html:

<textarea name="myTxtA" rows="10" id="myTxtA" disabled="disabled" style="width:99%;">
...
</textarea>

这是我通过浏览器获得的源代码,但 textArea 在浏览器中仍然是可编辑的。没有 javascript 修改 myTxtA,我的 codeFile 中对 myTxtA 的唯一其他引用如下:

If somethingNotHappeningHere Then
   myTxtA.ReadOnly = True
End If

我不明白为什么我的文本区域仍然可以编辑。包含 textArea 的 div 的类可以修改其行为吗?

PS:我不关心数据是否发送。我只是在寻找不可编辑的 textArea。

编辑:在 IE7 和 Firefox 3.5 上同样的问题

编辑 2: 当我将浏览器中的所有 html 源代码复制到新的 html 文件中时,textarea 被正确禁用...

【问题讨论】:

  • 您使用的是哪个浏览器? (因为当我在 IE8 和 FF 3 中查看包含该 html(加上结束标记)的页面时,文本区域被禁用)
  • 你也检查过其他浏览器的输出吗?
  • 编辑了问题:在 IE7 和 Firefox 3.5 上存在同样的问题
  • 你能发布你的 aspx 代码和你的(完整的)vb 代码吗?我认为问题出在文本框/区域“周围”的某个地方,因为我的文本框在这里表现正常。
  • 我不想发布代码,而且页面很大,但我会尝试提供更多详细信息。

标签: asp.net html vb.net


【解决方案1】:

【讨论】:

  • 我看不出 PostBack 会如何影响我的情况。我应该在什么上添加 If Not IsPostBack 条件?
【解决方案2】:

文本区域?这是一个外部组件吗?还是只是一个 html-Textarea?尝试使用文本框,将TextMode 设置为MultiLine。这将呈现一个 TextArea,您可以通过将 Enabled-property 设置为 true/false 来启用/禁用此控件。

【讨论】:

  • 在我的 aspx 代码中,我有
  • 啊,现在我明白了!我一定读过“它输出的 html”。对不起! ;-)
【解决方案3】:

这与您在 aspx/html 页面顶部的 docType 有关。

【讨论】:

    【解决方案4】:

    你试过用这个吗?:

    <textarea readonly="true"></textarea>
    

    我发现它更加通用,因为如果您的 textarea 数据超出显示的行数,您可以激活滚动条,而且我发现它比禁用它更不挑剔。

    我知道这是旧的,但把它放在这里供未来的 SO'ers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      相关资源
      最近更新 更多