これは非常に一般的な問題です。私はjavascriptを介してページ上の特定のボタンをクリックするための "enter key"イベントを取得しようとしていました。しかし、私の人生のために私のasp.netページからIDまたは名前で単一の要素をフェッチすることはできません。Javascript ASP.NETでGetElementByIdを使用できないC#
この問題は、javascriptの場所と、javascriptがロードされたときに要素がレンダリングされたのか、それとも何かの性質のものに関係していると私は理解していますか?
私が使用しようとするたびにvar x = document.getElementById('btn_AddAdmin')
私はnull値で終わります。
私の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"を持つ要素がWebブラウザによってレンダリングされた後、またはdomが準備されていることがわかったら、これを呼び出す必要があります。あなたの質問からあなたのJavaScriptをどこに含めるかは明確ではありません。私が見ることができるのは、idがtxt_AddAdminの入力にテキストが入力されたときに、関数 "Populate()"が呼び出されるということだけです。レンダリングされたhtmlページのソースコードをここに投稿することをお勧めします。おそらくhttp://jsfiddle.net/を使って作業を簡単にすることができます。 –
私はコメントの最後の行ごとにJavaScriptコードをその場所全体に再配置しようとしましたが、それは関係なく動作していませんでした。しかし、@ Xanderは問題が何であったかをカバーしています。しかし、提案をありがとう! – ImGreg