我正在尝试将数据显示到一个JQuery自动完成下拉列表中。从一个动态ASPX中检索信息:
$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
显然我不想做更多的GET而不是必要的,所以我对Java Timer有一点控制权(在每个按键上):
if (timerActive) {
stopTimer();
}
timer = setTimeout('obtainItems()', 800);
timerActive = true;
获得的项目确实:
$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
stopTimer();
这个东西一般都有用,但是我看到了箭头和AvPag的一些特殊行为。当显示下拉列表的记录时,如果我按下AvPag,组件将选择正确的记录,但在两秒钟后返回到前一个记录。
我的第一个理论是.autocomplete正在重置焦点,但我注意到这是不正确的。我认为这是一个错误(BUG LINK),但它也不起作用。
如果有人能帮忙的话,请多多...非常感谢!
答案 0 :(得分:0)
没有计时器,它是否可以正常工作?
我猜你的onkeypress事件被触发,用户选择了他们想要的东西,然后触发计时器事件重置项目。
添加变量
var selected = false;
并将所选事件附加到您的自动填充中并设置 selected = true
让 obtainItem 看起来像这样:
function obtainItems()
{
if (!selected)
{
$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
stopTimer();
}
}