タグを入力するために使用するjQuery.autocompleteを実装しようとしています(SOのように)。ただし、既にリストにあるタグは表示したくありません。すでに追加している場合はfoo
、提案として表示したくありません。タグのリストはサーバーから取得されます。ただし、ui.content
オブジェクトの変更にはいくつかの問題があります。
ここにある応答方法を使用します。
response: (event, ui)->
# Fetch already added tags
current = $('input#photo_tag_list').val().split(',')
# Filter out already added tags from result
ui.content = ui.content.filter (el) -> $.inArray(el.label, current) == -1
ただし、上記は機能しません。それでもすべてのタグが表示されます。ui.content を調べると、正しいように見えることがわかります...上記の非同期か何かですか?!
奇妙なことは、私がそうする場合:
ui.content.push({label: "Foo", value:"Bar"})
Foo
オートコンプリート リストに表示されます。しかし、私がこれを行うと:
ui.content = []
それはまだ返されたすべてを示しています。空のリストが必要です。
これはなぜでしょうか?結果リストを正しく変更するにはどうすればよいですか?
更新 Andrew Whitaker のソリューションに基づいて動作するようになりました。