我正在尝试使用像这样的
来从内容页面(Asp.net)访问主页面中的控件alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').value);
主页面中的控件如下,
<asp:Label ID="lbl" runat="server" Text="one"></asp:Label>
但不幸的是它没有用。我得到了未定义的值
答案 0 :(得分:1)
我注意到您实际上正在访问.value
控件生成的元素的<asp:Label />
字段,即<span></span>
。这种类型的元素不会返回.value
属性的任何内容。如果您确实尝试访问其文本,请使用:
alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').innerText);
或
alert(document.getElementById('<%=((Label)Master.FindControl("lbl")).ClientID %>').innerHTML);
答案 1 :(得分:1)
问题是母版页是命名容器,因此控件的客户端ID接收前缀,该前缀是命名容器的id。 使用JavaScript,它很容易解决:
var elm = document.querySelector('[id$="lbl"]');
$ =表示,以。结尾。
答案 2 :(得分:0)
在您的网页中加入jQuery并使用此脚本:
<script>
$(document).ready(function(){
alert($("#lbl").text());
});
</script>
答案 3 :(得分:0)
这对我有用:(检查以下代码)
alert(document.getElementById('<%=(Master.FindControl("lbl")).ClientID %>').innerText);
答案 4 :(得分:0)
使用updateNotices(1)
对我不起作用。可以使用以下代码:
getElementById