views:

131

answers:

2

Hi everybody,

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 don'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!

A: 

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();
    }
}
hunter
A: 

Hi!

Firts of all, I would like to thank Mark and Hunter. I have to say that the component shows that behaviour even without the delay logic (because the component makes by his own, thanks Mark ;)).

Maybe some kind of bug?