开发者

JQuery Autocomplete strange focus behaviour

开发者 https://www.devze.com 2022-12-19 09:24 出处:网络
I\'m trying to show data into one JQuery Autocomplete Dropdown. The information is retrieved from one dynamic ASPX:

I'm trying to show data into one JQuery Autocomplete Dropdown. The information is retrieved from one dynamic ASPX:

$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')

Obviously I d开发者_如何转开发on't want make more GETs than necessary, so I have a bit of control with a Java Timer (on every keypress):

if (timerActive) {
    stopTimer();
}

timer = setTimeout('obtainItems()', 800);
timerActive = true;

And the obtain items does:

$("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
stopTimer();

This thing works in general, but I've seen some special behaviour with arrows and AvPag. When the records of the dropdown are displayed, if I press AvPag the component selects the correct record, but after two seconds comes back to the previous one.

My first theory was that the .autocomplete was resetting the focus, but I have noticed that this is not correct. I thought that it was a bug (BUG LINK) but it doesn't work too.

Please, if somebody can help... thanks a lot!


Does it work as desired without the timer?

I'm guessing your onkeypress event is fired, user selects what they want, then the timer event fires which resets the items.

add a variable

var selected = false;

and attach a selected event to your autocomplete and set selected = true

have your obtainItem look like this:

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

精彩评论

暂无评论...
验证码 换一张
取 消