2013-04-05 40 views
0

我有一個ASP.NET控件的一些文本字段和複選框。我想根據頁面加載後文本字段中存在的值使用JavaScript修改複選框狀態。如何在ASP.NET控件中引用JavaScript中的TextBox?

如何可靠地讀取JavaScript中的文本字段值?我看到this answer但它沒有幫助:

<asp:TextBox Text='<%# Bind("something") %>' ID="txtSomething" runat="server"> 
</asp:TextBox> 

<script type="text/javascript"> 
    alert($('#<%= txtSomething.ClientID %>').val()); 
</script> 

這是行不通的; VS告訴我「txtSomething未被聲明,由於其保護級別,它可能無法訪問。」

我還可以在JavaScript中引用該文本框嗎?

+0

這個'txtSomething'位於哪裏?例如,在GridView中,面板。請發佈其父代控制代碼。 – Win 2013-04-05 14:21:52

+0

@Win它在一個''裏面。我現在有這個工作,使用'frm.FindControl(「txtSomething」)。ClientID'。 – 2013-04-05 15:39:58

回答

3

你可以嘗試讓其中包含文本框和他的孩子們輸入搜索後控制其ID包含您的文本框服務器ID

<script type="text/javascript"> 
    alert($('#<%= parentControl.ClientID %>').find("input[id$='txtSomething']").val()); 
</script> 

作爲另一種選擇的客戶ID,你可以這樣做:

<script type="text/javascript"> 
    alert($('#<%= (parentControl.FindControl("txtSomething")).ClientID %>').val()); 
</script> 
+0

如果你的意思是「父母」,我只是試過;不幸的是'Parent.FindControl(「txtSomething」)'爲空。 – 2013-04-05 14:09:09

+0

不是父級,而是控制的ID,你的txtSomething放置在 – Vladimirs 2013-04-05 14:10:39

+0

這將是很好,如果你提供代碼與這個文本框父控件,因爲第二種方法將無法與GridView等 – Vladimirs 2013-04-05 14:12:01

相關問題