我知道这是一个非常普遍的问题。我试图得到一个“回车键”事件来通过javascript调用页面上某个按钮的点击。然而,我不能在我的生活中从我的asp.net页面通过其id或名称获取单个元素。Javascript无法GetElementById在ASP.NET C#
这是我的理解,这个问题是相关的JavaScript位于何处,以及是否元素已被呈现的时间加载的JavaScript或这种性质的东西?
每次我尝试使用var x = document.getElementById('btn_AddAdmin')
时,我都会得到一个空值。
我的asp.net页面有它继承的SiteMaster页面。我已经包含了我的asp.net页面和SiteMaster页面的修剪版本。
ASP.NET页:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="Admin.aspx.cs" Inherits="HERMES.Admin" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<input type="text" id="txt_AddAdmin" runat="server" onkeypress="Populate()" />
母版页:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs"
Inherits="HERMES.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title></title>
<link href="./Styles/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form runat="server">
</form>
</body>
很抱歉的格式,我好像做错了什么......
我试图放置JavaScript在很多不同的位置 - 从sitemaster页面到asp.net页面的顶部和底部。这两种方式都没有运气
要回答你的第一个问题,是的,document.getElementById的位置很重要。您需要在ID为“btn_AddAdmin”的元素已由网络浏览器呈现或您知道dom已准备就绪后调用此方法。从你的问题中不清楚你的JavaScript包含在哪里。我只能看到当使用id txt_AddAdmin输入文本时,调用函数“Populate()”。我建议你在这里发布你呈现的html页面的源代码。也许使用http://jsfiddle.net/使事情变得更容易。 – 2012-02-14 21:05:21
我试图根据我的评论中的最后一行重新定位JavaScript代码,并且它不管用。然而,@ Xander已经涵盖了问题所在。还是)感谢你的建议! – ImGreg 2012-02-14 21:10:28