11

同じ選択リストを使用するオートコンプリートフィールドの数が可変のフォームがあります。これらのフィールドは、必要に応じて追加および削除されます。unbind()ページ上のパラメータが変更されるたびに、最初に呼び出してautocomplete()から新しいパラメータをURLに追加して、すべてのフィールドのリストを更新しようとします。

$('input.foo').unbind().autocomplete(url?new_param=bar);

問題は、unbind()がバインド解除されていないように見えることです。入力フィールドに入力すると、オートコンプリートイベントの履歴全体が表示されます。

また、flushCacheを試しましたが無駄になりました。

古いイベントをクリアするにはどうすればよいですか?

ありがとう。

4

6 に答える 6

5
$(target).autocomplete("destroy");
于 2012-04-14T06:14:50.060 に答える
3

これを試して

$ ('input.foo').unbind('.autocomplete').autocomplete ('url?new_param=bar') ;
于 2009-11-10T14:08:49.900 に答える
2

jQuery は、オートコンプリートによって既に一致したコンテンツを削除するためのflushCache() メソッド ( http://docs.jquery.com/Plugins/Autocomplete ) を提供します。

たとえば、使用されている html 要素が で<input type="text" id="txtElement"/>あり、オートコンプリートが関連付けられているとします。flushCache は次のように指定できます$("#txtElement").flushCache();。これで問題は解決します。

于 2010-06-11T11:20:43.683 に答える
1

オプションを使用している場合は、cacheLength を追加して 1 に設定します。この設定では、返されたレコードは保存されません。私を信じてください、それは私の人生をより良くしました... 5分間ずっと.

于 2010-11-09T16:19:07.777 に答える
0

あなたの問題は、オートコンプリート入力フィールドを囲むフォームがないことだと思います。jquery.autocomplete.js のコードを見ると、 $(input.form).unbind(".autocomplete"); が実行されます。unautocomplete() で、これは入力が機能するためにフォームタグ内に存在する必要があることを意味します。

于 2010-02-12T15:38:26.940 に答える