我在我的 rails 应用程序中使用 Jquery TokenInput 来帮助用户快速输入信息。每个用户都有一个个人资料,上面有许多相同类别的项目,称为college_items。每个college_item 都有自己的编辑链接,它会弹出一个模态框,其中包含模态框的适当编辑表单。
我关注了 Ryan Bates 的截屏视频,并使用以下代码使 TokenInput 正常工作:
在 application.js 中:
$(function() {
$("#education_major_tokens").tokenInput("/majors.json", {
theme: "facebook"
})
});
在我看来:
<%= f.text_field :major_tokens %>
在我的模型中:
def major_tokens=(ids)
self.major_ids = ids.split(",")
end
我遇到的问题是这个相同的字段出现在每个编辑表单中,所以在第一个项目的编辑表单中一切正常,但在任何其他项目的编辑表单中,javascript 都没有初始化。我的问题是如何更改 javascript 以在每次出现此表单元素时进行初始化,而不仅仅是第一次出现?
编辑:我认为这样的事情可能是解决方案:
$(function() {
$("#education_major_tokens").each(function(){
$(this).tokenInput("/majors.json", {
theme: "facebook"
})
});
});
但它仍然不适合我。有没有人有任何想法?
编辑2:终于想通了。请参阅上面的编辑,只是没有使用#education_major_tokens,而是将每个输入设置为具有:class =>“major_input”并将代码中的“#education_major_tokens”更改为“.major_input”