0

1 つの JQuery オートコンプリート ドロップダウンにデータを表示しようとしています。情報は、1 つの動的 ASPX から取得されます。

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

明らかに、必要以上に GET を行いたくないので、Java タイマー (キーを押すたびに) で少し制御できます。

if (timerActive) {
    stopTimer();
}

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

そして、アイテムの取得は次のことを行います。

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

これは一般的に機能しますが、矢印と AvPag でいくつかの特別な動作を見てきました。ドロップダウンのレコードが表示されているときに AvPag を押すと、コンポーネントは正しいレコードを選択しますが、2 秒後に前のレコードに戻ります。

私の最初の理論は、.autocomplete がフォーカスをリセットしていたというものでしたが、これは正しくないことに気付きました。バグ ( BUG LINK ) だと思ったのですが、うまくいきません。

誰かが助けてくれるなら...どうもありがとう!

4

1 に答える 1

0

タイマーなしで思い通りに動作しますか?

onkeypressイベントが発生し、ユーザーが必要なものを選択すると、タイマーイベントが発生し、アイテムがリセットされると思います。

変数を追加する

var selected = false;

選択したイベントをオートコンプリートに添付し、selected=trueに設定します

getItemを次のようにします。

function obtainItems()
{
    if (!selected)
    {
        $("#<%= this.txt.ClientID %>").autocomplete('<%=this.ResolveUrl("~/Page.aspx") %>')
        stopTimer();
    }
}
于 2010-02-04T17:46:07.617 に答える