JQuery Autocomplete奇怪的焦点行为

时间:2010-02-04 17:38:43

标签: c# asp.net jquery-autocomplete

我正在尝试将数据显示到一个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),但它也不起作用。

如果有人能帮忙的话,请多多...非常感谢!

1 个答案:

答案 0 :(得分:0)

没有计时器,它是否可以正常工作?

我猜你的onkeypress事件被触发,用户选择了他们想要的东西,然后触发计时器事件重置项目。

添加变量

var selected = false;

并将所选事件附加到您的自动填充中并设置 selected = true

obtainItem 看起来像这样:

function obtainItems()
{
    if (!selected)
    {
        $("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
        stopTimer();
    }
}