1

我正在使用 railscasts tokeninput 插件进行自动完成。我希望只有那些不包含在输入字段中的下拉列表中显示的条目

我的 JS 代码是

$(function() {
  $("#category").tokenInput("/products/product_categories.json", {
    crossDomain: false,
    prePopulate: $("#category").data("pre"),
    theme: "facebook"
  });
});

我的控制器是

def product_categories
category = Category.where("name like ?", "%#{params[:q]}%")
respond_to do |format|
  format.html
  format.json { render :json => category.map(&:attributes) }
end

结尾

它工作正常,但问题是每次出现相同的列表。让我们假设在 dropdwon 列表中有两个条目 asia 和 africa。将亚洲添加到输入字段后,再次单击字段时会出现亚洲和非洲。

我希望如果条目已包含在输入字段中,则它不能出现在下拉列表中

4

1 回答 1

1

如果您使用的是 JQuery tokeinput,您有 2 个选项可以防止重复

  1. 使用preventDuplicates选项,即使用户从列表中多次选择相同的选项,它也只会添加一次。
  2. 使用回调onResult来操作响应数据。读取输入字段的内容并从数据数组中删除这些项目。您可以参考堆栈溢出问题以了解如何编写onResult回调。

JQuery tokeninput 的完整文档在这里

于 2015-10-16T14:57:47.540 回答