Очистить текст ASP TextBox в пользовательском элементе управления, используя jQuery с главной страницы - PullRequest
0 голосов
/ 05 августа 2020

У меня есть страница ASP. NET, которая содержит динамически созданные пользовательские элементы управления (все экземпляры одного элемента управления) внутри нескольких репитеров. Каждый из этих пользовательских элементов управления содержит, помимо прочего, текстовое поле, которое я хочу очистить с помощью кнопки HTML под ним. Поскольку я не хочу вызывать какие-либо обратные передачи, я пытаюсь сделать это на стороне клиента, используя jQuery.

На главной странице у меня есть следующее:

var removeCommentBtns = $('.remove-comment-btn');
for (let i = 0; i < removeCommentBtns.length; i++) {
    if (removeCommentBtns.val() != null) {
        removeCommentBtns[i].addEventListener("click", function () {
            //blank out text box
        })
    }
};

Это проходит через все кнопки, к которым я хочу добавить событие очистки текстового поля, но мне не удалось понять, что мне нужно добавить в прослушиватель событий, чтобы очистить текстовое поле. Я не могу ссылаться на текстовое поле, используя $('#<%=txtTextBox.ClientID %>'), потому что текстовое поле находится в моем пользовательском элементе управления.

Я также пробовал различные манипуляции с DOM, такие как поиск предыдущего диапазона, в котором текстовое поле находится и устанавливаю textContent $(this).prevAll('.span-clause-comment')[0].textContent = "";, но это приводит к исчезновению самого текстового поля.

Я уверен, что есть что-то важное, чего мне не хватает!

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Я наконец понял это. Мне удалось очистить (или установить) текст в текстовом поле, указав ближайший div и затем найдя текстовое поле с помощью подстановочных знаков.

var txt = $(this).closest("div").find("[id*=txtTextBox]");
txt[0].textContent = "";
0 голосов
/ 05 августа 2020

Я думаю, это может решить вашу проблему доступа к динамически создаваемым элементам. Доступ к динамически созданным элементам с помощью jQuery?

Но я предпочитаю использовать vanilla javascript. Поэтому я предлагаю вам использовать делегирование событий, которое вам нужно для доступа к ближайшему родительскому элементу, который уже существует при загрузке страницы, а затем получить доступ к любым динамически созданным дочерним элементам с помощью event.target.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...