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();
}
}
精彩评论