Правильные ссылки на элементы управления в пользовательских элементах управления ASP.NET в JavaScript

У меня есть пользовательский элемент управления ASP.NET, который содержит элемент управления текстовым полем и элемент управления кнопки. Этот пользовательский элемент управления будет добавлен на мою веб-страницу много раз. Мне нужен фрагмент JavaScript, который будет запускаться всякий раз, когда изменяется текстовое поле, и отключать кнопку, если значение текстового поля недействительно. У меня такой вопрос: как поместить JavaScript в текстовое поле, которое может ссылаться только на кнопку, находящуюся в том же пользовательском элементе управления? Помните, что существует множество пользовательских элементов управления ASP.NET, каждый из которых имеет кнопку и текстовое поле, и я хочу, чтобы недопустимое значение в текстовом поле влияло только на одну связанную кнопку. Спасибо!


person skb    schedule 21.12.2008    source источник


Ответы (1)


Вы можете использовать свойство ClientId элементов управления (оно однозначно идентифицирует элемент управления на стороне клиента) и сделать что-то вроде этого:

<asp:TextBox runat="server" ID="myTextBox" />
<asp:Button runat="server" ID="myButton" Text="click" />

<script language="javascript" type="text/javascript">
    document.getElementById("<%=myTextBox.ClientID %>").onclick = function() {
        document.getElementById("<%=myButton.ClientID %>").disabled = "disabled";
    }
</script>

Также см. этот документ: Клиентский скрипт на веб-страницах ASP.NET, раздел Ссылка на серверные элементы управления в клиентском сценарии

person maxnk    schedule 21.12.2008