2011-09-15 42 views
4

私は、次のラベルコントロールを持っている:Javascriptを使用してASP.NEt Webフォームのラベルの値を取得する方法?

<asp:Label ForeColor="DarkGreen" runat="server" ID="lblStatus"></asp:Label> 

その値は、をPage_Loadイベントに充填されます。

私は、次のJavaScript(ページマスター、ページの終わりではない配置)を添付:

function Validate() { 
     var lblObj = document.getElementById('<%=lblStatus.ClientID%>'); 
     alert(lblObj.value); 
     if (lblObj.value == "Replaced" || lblObj.value == 'Trashed' || lblObj.value == "Internal Use") { 

      alert("Products with" + lblObj.value + "status cannot be reserved"); 
      return false; 
     } 
    } 

"未定義" テキストでポップアップを表示警告(lblObj.valueを)。この問題を解決するにはどうすればよいですか? JavaScriptを配置するのに多くの組み合わせを試してみましたが、運はありません!おかげ

UPDATE

ブラウザsoruceコード:

<span id="ctl00__main_lblStatus" style="color:DarkGreen;">Available</span></td> 

検証JS関数の最初の行:

function Validate() { 
     var lblObj = document.getElementById('ctl00__main_lblStatus'); 
+0

あなたが設定したり取得したいですか?質問のタイトルとコンテンツの不一致。 –

+0

@Davide Piras、私は大変申し訳ございません。 – CiccioMiami

+0

@CiccioMiami:ビュー元で関数の最初の行の検証結果を移植できますか? – Canavar

答えて

5

label sがvalueを持っていません。彼らはinnerHTMLinnerTextです。

+0

@ Daniel A. White:私はinnerTextを試みましたが、まだ私に定義されていません – CiccioMiami

+0

クライアントのIDは印刷されていますか? –

+0

はい私はすでにコントロールとJavaScriptコードを比較していて、それらは同じです – CiccioMiami

4

ラベルサーバーコントロールはスパンとしてレンダリングされます。だからあなたはinnerTextの内容を取得する必要があります。これを試してください:

alert(lblObj.innerText); 
+0

おかげで試してみましたが、まだ私には定義されていません – CiccioMiami

+0

しかし、笑ってみたいと思ったらIEでスクリプトを試してみました。それはFirefoxの厳しいものでは機能しません、私はIEについて気にしません – CiccioMiami

2

ASP.NETラベルサーバーコントロールは、複雑なHTML出力で表示されます。 ように:

<span id="ctl00_ctl00_ContentPlaceHolder1_BodyPlaceHolder_lblLanguage0"> 
<label class="inputText">English</label> 
</span> 

あなたはスパンを取得しますgetElementByIdを使用します。 しかし、あなたがインナーラベルオブジェクト

1

この

を試してみてください
<script language="javascript" type="text/javascript"> 
function getlabelvalue() 
{ 
    var value1 = document.getElementById('<%=labelID.ClientID%>').value; 
      if (value1.length < 1) 
       value1 = 0; 
}  
</script> 
1

htmlメソッドを使用する必要があります。

var g = $('#<%=lblStatus.ClientID%>').html(); 

これらはjqueryのでは動作しません:

  • $( '#<% = lblStatus.ClientID%>')のinnerText
  • $( '#<% = lblStatus.ClientID%を。 > ')。innerHTMLの
  • $(' #<% = lblStatus.ClientID%> ')。valを()
関連する問題