我知道這是一個非常普遍的問題。我試圖得到一個「回車鍵」事件來通過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