我有一个非常简单的问题,我正在努力寻找解决方案。
基本上我有一个声明为这样的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);
虽然这似乎有效,但我觉得它不应该是必要的,也不知道为什么需要它。
我做错了什么?任何帮助都将深表感谢。
答案 0 :(得分:1)
您是否需要发布所选项目?
select: function( event, ui ) {
__doPostBack("<% =btnPostBacker.UniqueID %>", ui.item);
}
编辑:或者也许:
select: function( event, ui ) {
$(this).val(ui.item);
__doPostBack("<% =btnPostBacker.UniqueID %>", "");
}