2011-11-15 30 views
1

私のアプリケーションでは、JavaScriptを使用してテキストボックスの値を警告したいだけです。getElementByIdがasp.netで動作しません

aspxページコード

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!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> 

    <script type="text/javascript"> 
     alert("hi"); 
     alert(document.getElementById('<%=textbox1.ClientID%>').value); 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:TextBox runat="server" ID="textbox1" Text="asdsad"> 
      </asp:TextBox> 
    </div> 
    </form> 
</body> 
</html> 

私は唯一の「ハイテク」私はエラーを取得..afterは、「必要なオブジェクト」の警告を取得。どういう理由ですか?

+0

document.ready() –

+0

なぜ落札したのですか? ..コメントをしてください。私は次の投稿でそれを改善することができます。 –

+0

@ Lion ..:).... –

答えて

4

要素が画面に表示される前にコードが実行されています。試してみてください -

window.onload = function() { 
    alert("hi"); 
    alert(document.getElementById('<%=textbox1.ClientID%>').value); 
} 

また、下記のコメントのTejsが示唆するように、スクリプトをページの下部に移動してください。

+1

これは基本的にこれです。本体がロードされる前に、head要素のスクリプトが実行されます。これを行う最も簡単な方法は、 '

1

ページが読み込まれていません。関数にコードを入れてからトリガーする必要があります。

onload = yourfunction;

1

スクリプトの場所を変更し、ページの下部にスクリプトコードを入れてください。ちょうどフォームタグの後に。

1

あなたが取得しようとしているIDは、サーバー側のIDであり、要素のhtml idではありません。あなたがfirebugでチェックした場合、idにはasp.net、i代わりにjqueryを使用して特定の要素を選択するためにdomに入ることをお勧めします。

また、名前とgetByNameを追加することもできます。

関連する問題