使用主页中的 jQuery 清除用户控件中的 ASP TextBox 文本

我有一个 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 = "";但这会导致文本框本身也消失。


我确定我缺少一些基本的东西!


蓝山帝景
浏览 67回答 2
2回答

慕标5832272

我认为这可以解决您访问动态创建的元素的问题。&nbsp;使用 jQuery 访问动态创建的项目?但我更喜欢使用 vanilla javascript。所以我建议你使用事件委托,你需要访问页面加载时已经存在的最近的父元素,然后使用 event.target 访问任何动态创建的子元素。

万千封印

我终于想通了。我能够通过找到最近的 div 然后使用通配符找到文本框来清空(或设置)文本框中的文本。var&nbsp;txt&nbsp;=&nbsp;$(this).closest("div").find("[id*=txtTextBox]"); txt[0].textContent&nbsp;=&nbsp;"";
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript