我在我的rails應用程序中使用Jquery TokenInput來幫助用戶快速輸入信息。每個用戶都有一個配置文件,其中包含許多同一類的項目,並將它們稱爲college_items。每個college_item都有自己的編輯鏈接,它彈出一個模態,其中包含適當的模態編輯表單。在頁面上多次使用相同的JQuery tokeninput框
我跟着瑞恩貝茨的截屏,並得到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」