来自 railscasts tokeninput 的相同条目列表
Same list of entries coming 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 列表中有两个条目 asia 和 africa。将亚洲添加到输入字段后,再次单击该字段时,亚洲和非洲都会出现。
我希望如果条目已包含在输入字段中,则它不得出现在下拉列表中
如果您使用 JQuery tokeinput,您有 2 个选项可以防止重复
- 使用
preventDuplicates
选项,这样即使用户 select 多次从列表中选择相同的选项,它也只会添加一次。
- 使用回调
onResult
来操作响应数据。读取输入字段的内容并从数据数组中删除这些项目。你可以参考this stack overflow question 看如何写onResult
callback.
JQuery 令牌输入的完整文档是 here。
我正在使用 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。将亚洲添加到输入字段后,再次单击该字段时,亚洲和非洲都会出现。
我希望如果条目已包含在输入字段中,则它不得出现在下拉列表中
如果您使用 JQuery tokeinput,您有 2 个选项可以防止重复
- 使用
preventDuplicates
选项,这样即使用户 select 多次从列表中选择相同的选项,它也只会添加一次。 - 使用回调
onResult
来操作响应数据。读取输入字段的内容并从数据数组中删除这些项目。你可以参考this stack overflow question 看如何写onResult
callback.
JQuery 令牌输入的完整文档是 here。