在ASP.NET回发期间,jQuery自动完成不会保留值

时间:2013-02-12 23:54:18

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

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

基本上我有一个声明为这样的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);

虽然这似乎有效,但我觉得它不应该是必要的,也不知道为什么需要它。

我做错了什么?任何帮助都将深表感谢。

1 个答案:

答案 0 :(得分:1)

您是否需要发布所选项目?

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

编辑:或者也许:

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