在使用asp.net MasterPage时无法弄清楚如何在javascript中引用html元素。
我已经做了很多搜索,并且发现了很多例子,这些例子表明应该这样做。但是到目前为止,当我尝试实现其中任何一个时,都没有成功。
总结一下,根据我的发现,这不起作用:
document.getElementByID('txtLabel');
因为运行时的实际元素被asp.net重命名为类似于'ctl00_MainContent_txtLabel'的名称,我发现所有这些都是正确的。
我发现的大多数解决方案都具有以下形式:
document.getElementByID('<%=txtLabel.ClientID%>');
麻烦是,我也无法使它正常工作。
如果我尝试以下操作:
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script>
var x = document.getElementById("<%=frm1.ClientID%>");
console.log(x);
</script>
<div class="jumbotron">
<h1>ASP.NET</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML,CSS,and JavaScript.</p>
<p><a href="http://www.asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
</div>
<div class="row">
<div id="frm1" class="col-md-4">
我立刻被VS的红色波浪形表示欢迎
名称“ frm1”在当前上下文中不存在
因此,如果我尝试以下操作:
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script>
var x = document.getElementById("<%=frm1.ClientID%>");
console.log(x);
</script>
<div class="jumbotron">
<h1>ASP.NET</h1>
<p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML,and JavaScript.</p>
<p><a href="http://www.asp.net" class="btn btn-primary btn-lg">Learn more »</a></p>
</div>
<div class="row">
<div class="col-md-4">
<h2>Getting started</h2>
<p>
ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop,event-driven model.
A design surface and hundreds of controls and components let you rapidly build sophisticated,powerful UI-driven sites with data access.
</p>
<p>
<a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301948">Learn more »</a>
</p>
<p>
<asp:Label runat="server" ID="frm1"></asp:Label>
</p>
</div>
红色的波浪状现在消失了,但是在运行时,查看Chrome中的JS控制台,JS调用的结果为空。 jQuery还向我返回了同样令人困惑的结果。我找不到在页面上引用控件的方法。
我希望能够通过JS引用页面上的控件,但是我不知道该怎么做。