2011-09-15 51 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代碼:JS驗證功能的

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

第一行:

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

?問題的標題和內容不匹配。 –

+0

@Davide Piras,我的意思是對不起 – CiccioMiami

+0

@CiccioMiami:你可以通過視圖源來移植驗證函數的第一行結果嗎? – Canavar

回答

5

label都不具備的一個value。他們有innerHTMLinnerText

+0

@丹尼爾答:懷特:我試過innerText,仍然給我undefined – CiccioMiami

+0

客戶端ID打印好嗎? –

+0

是的,我已經比較了控制和JavaScript代碼,它們是相同的 – CiccioMiami

4

標籤服務器控件呈現爲範圍。所以你應該通過innerText得到它的內容。試試這個:

alert(lblObj.innerText); 
+0

謝謝我嘗試過,但仍然給我undefined – CiccioMiami

+0

但是,如果你想笑,我只是在IE瀏覽器試過腳本,它的工作原理。它不適用於Firefox艱難,我不介意IE – CiccioMiami

2

ASP.NET標籤服務器控件將呈現在複雜的HTML輸出中。 像:

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

當您使用的getElementById你會得到跨度。 但要設置通過JavaScript你要訪問內標籤對象

1

試試這個

<script language="javascript" type="text/javascript"> 
function getlabelvalue() 
{ 
    var value1 = document.getElementById('<%=labelID.ClientID%>').value; 
      if (value1.length < 1) 
       value1 = 0; 
}  
</script> 
1

使用jquery,你需要使用html方法。 。

  • $( '#<%= lblStatus.ClientID%>')的innerText
  • $('#<%= lblStatus.ClientID%:

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

    這些將不會用jQuery工作> ')。innerHTML的

  • $(' #<%= lblStatus.ClientID%>「)。VAL()
  • 您要設置或獲取
相關問題