我正在尝试实现用于输入标签的 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 的解决方案工作。