• 締切済み

getElementByIdでASP.NETのTextBoxを取得できない

以下のようなJavaScriptのソースで、 TextBoxの値を取得しようとしています。 ------------------------------------------- 【ASP.NET】 <asp:TextBox ID="txtTemp_Jigyo" runat="server" ReadOnly="True">DataTemp</asp:TextBox> 【JavaScript】 var strData = document.getElementById("txtTemp"); alert(strData); var strDataValue = strData.value; alert(strDataValue ); ------------------------------------------- 実行すると4行目でエラーとなっているようで、 また、2行目のalertではobjectではなく、nullが返ってきています。 ほぼ、同環境の別PGでは正常に取得できているのですが、 なにかASP.NET or JavaScriptの記述に問題がある可能性はありませんか? よろしくおねがいします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえずIDが違ってますがいいんですか?

hiro_sun
質問者

補足

失礼しました。実際にはIDは合っています。 開発時にプロパティに表示されるIDと実際のレンダリング時に表示されるIDが異なることが原因のようですが、対応方法はわからないままです。

関連するQ&A

  • getElementByIdを使用したグローバル変数の定義(使い方について) 

    グローバル変数の定義について教えてください。 getElementByIdを、グローバル変数で使用することはできないのでしょうか? 【グローバル変数(整数)】の場合 ------------------------------------------------- //グローバルで整数を定義 var a = 10; function test(){ alert(a.value); } 結果:「10」が表示される。 ------------------------------------------------- 【グローバル変数(getElementByIdを使用)の場合】 ------------------------------------------------- //グローバルでgetElementByIdで取得したオブジェクトを定義 var a = document.getElementById("objname"); function test(){ alert(a.value); } 結果:「null」 が表示される。 ※a = document.getElementById("objname"); でも同様。 ------------------------------------------------- 【ローカル変数(getElementByIdを使用)の場合】 ------------------------------------------------- function test(){ //ローカルでgetElementByIdで取得したオブジェクトを定義 var a = document.getElementById("objname"); alert(a.value); } 結果:「画面入力値」 が表示される。 ------------------------------------------------- このように getElementByIdで取得したオブジェクトを、 グローバル変数として扱った場合、nullとなるので困っています。 getElementByIdで取得したオブジェクトを、 グローバル変数として扱う良い方法はないでしょうか? 【環境】 OS:WindowsXP Pro 使用JavaScript:外部ファイルのjavaScript

  • ASP.NET2.0 Javascript

    皆様はじめまして。 ASP.NET2.0にて開発中です。 初歩的な質問となってしまうかもしれませんが、テキストボックスやラベル等のコントロールのtextの値をJavascriptで取得したいのですが、下記コードではオブジェクトとなってしまいます。 どのように記述すれば値を取得できるかご教授いただけないでしょうか?? <SCRIPT language="javascript"> function window.onload() { var spread = document.all("FpSpread1"); var str = document.getElementById("lblCount"); alert(str); spread.onEditStart = estart; } function estart(event){ if (event==null) event = window.event; if (event.row >= str.value && event.col == 1) event.cancel=true; //1行目の編集開始はキャンセルする if (event.row >= str.value && event.col == 1) alert("変更するな"); } </SCRIPT> ※var str = document.getElementById("lblCount");  ←ラベルコントロールから値を取得 alert(str);                 ←アラートにて取得の確認([object]となってしまいます。) 宜しくお願い致します。

  • ASP.NETのコントロールの値をJavaScriptで取得

    超初級の質問ですみません。 (ASP.NET初心者です) ASP.NETのラベルコントロールの値をJavaScriptで取得する方法が分かりません。 var data = document.getElementById("lblTest").Text; alert(data); といった記述で良いのかと思っていたのですが、値が取得できていません。 諸事情によりJavaScriptのFunctionの引数は増やせない為、直接値を参照する必要があります。 ご回答、宜しくお願いします。

  • javascriptでlabelの値取得

    vs2012(c#)で <asp:Label ID="test" runat="server" Text="abc" Visible="true"></asp:Label> の値をjavascriptで取得したいのですが、下記で実行すると l1はnullになり取得できません。 var l1 = document.getElementById("test"); var data = l1.innerText; console.log(data); そのようにすれば取得できるでしょうか

  • getElementByIdの戻り値がnullになります。

    getElementByIdでdivタグのオブジェクトを取得したいのですが、nullとなってしまいます。 以下のコードのどこがいけないのでしょうか。 --- <div id='a'></div> <script language="javascript">// <!-- var a_ = document.getElementById('a'); document.write(a_); // --></script> ---

  • Javascript; フィールドの属性変更

    作成したフォームに対してJavaScriptでの処理を行おうとしています。 セットした社名やDB検索した値の属性変更をしたいのですが、下記エラーが表示されます。 どのような対策がございますか? SCRIPT5007: プロパティ 'readOnly' の値を設定できません: オブジェクトは Null または未定義です。 SCRIPT5007: プロパティ 'onchange' の値を設定できません: オブジェクトは Null または未定義です。 下記のJavaScriptでの処理を行おうとしています。 function SetEvent() { document.getElementById("CompanyTextBox").readOnly="readonly";  //ここで、エラーになります。 //DB検索処理........ //配列 var counter = 0; var code = new Array(); for (var i = 0; i <10; i++) { code[i] = new Array(); code[i][0] = 'TextBox' + ((i * 4) + 1); code[i][1] = 'TextBox' + ((i * 4) + 2); document.getElementById(code[i][1]).readOnly="readonly"; //ここで、エラーになります。 } //検索結果のセット do { var elem = document.getElementById(code[counter][0]); elem.onchange = function(event) //ここで、エラーになります。 ・ ・ counter++; } while(counter < 10) }

  • <asp>タグの属性情報が取得できない

    いつも利用させていただいております。 宜しくお願いします。 今、VS2005のASP.NETを使用してプログラミングをしているのですが どうしてもタグの属性情報が取得できないため、ご存知の方が おりましたら是非アドバイスを・・・と思い投稿させていただいています。 以下にソースを記載いたします <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>test</title> <script language="javascript" type="text/javascript"> <!-- function test(){ alert(document.getElementById("Label1").getAttribute('Visible')); } // --> </script> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="DropDownList1" runat="server"> </asp:DropDownList> <asp:Label ID="Label1" runat="server" Text="Label" Visible="true"> </asp:Label> </div> </form> </body> </html> 上記ソースで「getElementById("Label1").getAttribute('Visible')」と言う部分が今回のターゲットです。 通常のHTMLタグ(div,・・・・)ですとなんら問題なくそれぞれの属性を取得できるのですが、こと<asp: タグで始まる属性を取得しようとすると・・・  ID→取得できました。  text→取得できません。  Visible→取得できません。 上記状態となってしまいます。 そこでご質問です。 ・<asp:タグの属性は[getAttribute]で取得できないのでしょうか? ・もし、取得できない場合は、何とか[Visible]をOnClickイベントで  "false"にしたいと考えています。 以上です。もしご存知の方がいましたら、なにとぞご教授の程 宜しくお願いします。 環境  WindowXP  VS2005 EnterPriseEdition  SQLServer2005

  • <ASP>にTextBoxの値を設定する方法

    TextBoxに記述されたDB接続文字列を<ASP>内で設定しようと試みておりますが、失敗します。どのように記述を改めればよろしいでしょうか? ----------------- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = Application["DB_CON_STRING"].ToString(); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="DATETIME" HeaderText="DATETIME" SortExpression="DATETIME" /> <asp:BoundField DataField="MESSAGE" HeaderText="MESSAGE" SortExpression="MESSAGE" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="form1.TextBox1.Text"★ここがうまくいかない★ SelectCommand="SELECT * FROM TEST ORDER BY ID DESC"></asp:SqlDataSource> </form> </body> </html>

  • asp.net でのドロップダウンリスト 条件指定

    ASP.netにて、ドロップダウンリストの選択に応じて、 処理を分岐させるプログラムを書いています。 現在、エラーになっているのですが、 下記のコードです。 ----------------------------------- <%@ Page Title="ホーム ページ" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <p><strong>【検索条件】</strong></p> <div style="border:#d2d2d2 solid 1px;"> <p style="margin-left: 30px;"> <asp:DropDownList ID="ddlPref" runat="server"> </asp:DropDownList> <asp:DropDownList ID="ddlNumOfPeople" runat="server"> </asp:DropDownList> </p> <p style="margin-left: 30px;"> <asp:DropDownList ID="ddlLayout" runat="server"> </asp:DropDownList> <asp:DropDownList ID="ddlPrice" runat="server"> </asp:DropDownList> </p></div> <p> &nbsp;</p> <p> <asp:Button ID="btnSearch" runat="server" Text="検索" Width="90px" OnClientClick="javascript:DDLEnabled()" /> </p> <script language="javascript" type="text/javascript"> function DDLEnabled() { var srtMsg = ''; var Pref = document.getElementById("MainContent_ddlPref"); var PrefValue = Pref.options[Pref.selectedIndex].value; var NumOfPeople = document.getElementById("MainContent_ddlNumOfPeople"); var NOPValue = NumOfPeople.options[NumOfPeople.selectedIndex].value; var Layout = document.getElementById("MainContent_ddlLayout"); var LayoutValue = Layout.options[Layout.selectedIndex].value; var Price = document.getElementById("MainContent_ddlPrice"); var PriceValue = Price.options[Price.selectedIndex].value; if (PrefValue == "0") { srtMsg = "都道府県を選択してください。\n"; } if (NOPValue == "0") { srtMsg = srtMsg + "人数を選択してください。\n"; } if (LayoutValue == "0") { srtMsg = srtMsg + "レイアウトを選択してください。\n"; } if (PriceValue == "0") { srtMsg = srtMsg + "料金を選択してください。\n"; } if (srtMsg != '') { alert(srtMsg) } if (PrefValue !== "0" && NOPValue !== "0" && LayoutValue !== "0" && PriceValue !== "0") { //ここで、検索の実行がされるようにしたい。。。 } } </script> <p> &nbsp;</p> </asp:Content> ---------------------------------- 上記コードにて、ボタン(btnSearch)が押下された時、 ドロップダウンリストが、 (1):全て選択されているとき ⇒ 次の画面へ (2):未選択のものがあるとき ⇒ javascriptのポップ・アップ表示 をしたいと考えています。 #未選択、選択の判断はvalueの値がデフォルト値 "0"なので、0を未選択、0以外を選択済み というように判断しています。 現在、ポップ・アップの表示は問題なくできているのですが、 全て選択されている時の処理(ボタンの押下、実行)ができていません。 どなたかご存知の方がいたらおしえてください。 宜しくお願い致します。

  • Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。

    Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。 var data = [ [1,2,3], [4,5,6], [7,8,9] ]; for (var i = 0; i < data.length; i++){ for (var j = 0; j < data[i].length; j++){ <--- ここで lengthのオブジェクトがNullというエラーになります。 alert(data[i][j]); } } よろしくお願いいたします。

専門家に質問してみよう