【问题标题】:jQuery Autocomplete not persisting values during ASP.NET postbackjQuery Autocomplete 在 ASP.NET 回发期间不持久化值
【发布时间】:2013-02-12 23:54:18
【问题描述】:

我有一个非常简单的问题,我正在努力寻找解决方案。

基本上我有一个这样声明的 ASP.NET 文本框。

<asp:TextBox runat="server" ID="txtCourse" CssClass="input-xlarge HighlightibleField" placeholder=""></asp:TextBox>

在这个文本框上,我绑定了一个像这样的 jQuery UI 自动完成小部件。

$("#<% =txtCourse.ClientID %>").autocomplete({
    source: ["Course1", "Course2", "Course3"],
    select: function (event, ui) {
        __doPostBack("<% =btnPostBacker.UniqueID %>", "");
    }
});

回发按预期发生,但是 txtCourse.Text 不会保留(或回发)它填充的值。

例如,我继续选择“Course1”,该值被填充到 txtCourse 文本框,回发发生,我查看 txtCourse.Text 的值,它仍然只是我使用输入的文本键盘(例如:“c”)。

我尝试设置一个计时器来稍微延迟回发的执行:

setTimeout(function () {
    __doPostBack("<% =btnPostBacker.UniqueID %>", "");
}, 500);

虽然这似乎可行,但我认为它不应该是必要的,也不知道为什么需要它。

我做错了什么?任何帮助将不胜感激。

【问题讨论】:

  • 在回发之前,在 TextBox 上设置值,例如 $("#&lt;% =txtCourse.ClientID %&gt;").value(SelectedValue),以便文本框发布该值并在回发后保留它。如果没有发生,则意味着您更改了代码后面的文本框值。

标签: javascript jquery asp.net jquery-ui postback


【解决方案1】:

您需要发布所选项目吗?

select: function( event, ui ) {
    __doPostBack("<% =btnPostBacker.UniqueID %>", ui.item);
}

编辑:或者也许:

  select: function( event, ui ) {
        $(this).val(ui.item);
        __doPostBack("<% =btnPostBacker.UniqueID %>", "");
    }

【讨论】:

  • Spot on... 您的帖子让我意识到,显然直到事件完成后才设置该值,并且此解决方法似乎已经解决了它。非常感谢...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 2013-01-30
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多