2015-10-16 50 views
1

我正在使用railscasts tokeninput插件自动完成。我想,只有在下拉列表中显示的项,其是不包含在输入字段相同的项目列表未来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列表中有两个条目亚洲和非洲。亚洲加入输入字段后,再次点击字段时亚洲和非洲出现。

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

回答

1

如果您正在使用JQuery tokeinput你有2个选项,以防止重复

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

JQuery tokeninput的完整文档是here

+0

Cna你分享一些信息如何使用preventDuplicates? –

+1

请参阅http://stackoverflow.com/questions/24699683/problems-with-the-jquery-plugin-tokeninput –

相关问题