【问题标题】:ASP:label and javascript getElementByIdASP:label 和 javascript getElementById
【发布时间】:2012-06-29 14:56:56
【问题描述】:

我正在尝试使用 Javascript 的 document.getElementById 方法获取 asp:labelText 属性的值,使用以下代码

<asp:Label ID="lblThis" runat="server" Visible="False" Text="this is a label" />
<script type="text/javascript" language="javascript">
    var lblThis = document.getElementById('<%= lblThis.ClientID %>')
    var lblThisText = lblThis.innerText
    alert(lblThisText)
</script>

当我打开页面时,什么也没有发生。我不是 javascript 人,所以我不知道我哪里出错了。我也不想在这里设置任何属性,只是将asp:label 的值读入 javscript。

感谢您提供的任何提示、指示或帮助。

更新

我已按照Mennan's answerVisible="false" 替换为style="display:none",现在收到带有“未定义”的警报。正确的方向,但我还没有。

更新

我现在有一段工作代码。 innerText 什么都没有,但 innerHTML 有正确的字符串。正确代码:

<asp:Label ID="lblThis" runat="server" style="display:none" Text="this is a label" />
<script type="text/javascript" language="javascript">
    var lblThis = document.getElementById('<%= lblThis.ClientID %>')
    var lblThisText = lblThis.innerHTML
    alert(lblThisText)
</script>

【问题讨论】:

  • 用分号结束每一行不会有什么坏处;
  • 我建议使用 而不是Label,如果你不需要在页面上显示标签的值。
  • 问题中的代码似乎没有任何问题。这是全部还是页面中还有其他内容?

标签: javascript asp.net


【解决方案1】:

使用

<asp:Label ID="lblThis" runat="server" style="display:none" Text="this is a label" />

不是

Visible="False"

【讨论】:

  • 因为不可见的项目没有加载到页面上所以你不能访问它, display:none 表示“加载但隐藏它”
【解决方案2】:

您是否在脚本标签类型中拼错了 javascript?

<script type="text/javascript">

此外,当您使用“可见”属性时,控件甚至不会发送到页面。这与在样式中使用“display: none”不同。您需要将“显示”的样式设置为“无”,然后 javascript 会找到该元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多