【问题标题】:Use jquery clear textbox value in a repeater control在转发器控件中使用 jquery 清除文本框值
【发布时间】:2015-07-27 13:14:50
【问题描述】:

我在尝试清除转发器控件中的文本框内容时遇到问题。

repeater 控件有它的数据源,并且绑定在后面的代码中。文本框显示来自数据源的信息。我正在使用 ajax 和按钮来删除文本框后面的数据并清除它的内容。虽然删除功能有效,但尝试清除文本的 jquery 代码不起作用。

我使用的 jquery 代码是:

$(this).parent().prev(".answerText").val("");

我的目标是正确的元素。如果文本框最初没有内容,则这些代码有效。如果我在此文本框中输入内容并单击此按钮,它将清除内容。

有没有人知道如何处理这个问题?

数据源绑定在 onInit 中:

protected override void OnInit(EventArgs e) { rprQuestions.DataSource = test.Questions; rprQuestions.DataBind(); }

HTML 代码是: enter code here

<span class="input-group-btn">

<a href="#" id="btnRemoveAnswer" class="glyphicon glyphicon-remove form-control removeAnswer" name="remove this answer" onclick="return false;"></a></span>

</ItemTemplate>


</asp:Repeater>

【问题讨论】:

  • 您的代码应该可以正常工作。任何问题都取决于您未在问题中提供的 HTML 结构,或您的逻辑中其他地方的错误。
  • 但此代码在其他具有相同结构但最初没有内容的文本框中确实有效。我想知道是不是因为转发器控件的数据源。
  • 如何触发包含此代码的事件?如果它在页面加载后动态附加,则需要使用委托事件处理程序。一个完整的例子比一行代码更有帮助。
  • 我已经为这个问题添加了一些代码。谢谢。

标签: javascript c# jquery asp.net ajax


【解决方案1】:

var $tr = $(this).closest('li');

$tr.find("input[id$=txtboxId]").val('');

您可以找到重复的 closet 元素并搜索带有 id 的文本框,然后更改值。

【讨论】:

    【解决方案2】:

    根据 this 的当前上下文,这应该可以工作:

    $(this).parent().find('.answerText').html();

    【讨论】:

    • 这个还是不行。我想知道为什么这段代码可以在同一个转发器控件中的其他文本框上工作,但原来没有文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多