2013-04-05 2 views
0

У меня есть элемент управления ASP.NET с некоторыми текстовыми полями и флажок. Я хотел бы изменить состояние флажка с помощью JavaScript на основе значений, присутствующих в текстовых полях после загрузки страницы.Как обратиться к TextBox в JavaScript внутри элемента управления ASP.NET?

Как я могу надежно читать значения текстового поля в 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, Panel. Отправьте его родительские управляющие коды. – Win

+0

@Win Это было внутри ''. Теперь у меня это работает, используя 'frm.FindControl (« txtSomething »). ClientID'. –

ответ

3

Вы можете попытаться получить идентификатор клиента управления, который содержит ваше текстовое поле и после поиска в его детях входа, который ID содержит вашего идентификатор сервера текстового поля

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

В качестве другого варианта можно сделать:

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

Если вы имели ввиду «Родитель», я просто попробовал это; К сожалению, Parent.FindControl ("txtSomething") 'имеет значение NULL. –

+0

Not Parent, но ID элемента управления, где находится ваш txtSomething – Vladimirs

+0

Будет хорошо, если вы предоставите код с этим родительским элементом управления текстовым полем, потому что второй подход не будет работать с GridView и т. Д. – Vladimirs

Смежные вопросы