2012-04-04 88 views
0

我在我的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」

回答

1

我認爲這有點晚了,而是試圖將類分配給您的令牌場

<input class="yourtokenfield" type="text" /> 

,用下面這個

$(function() { 
$(".yourtokenfield").each(function(){ 
    $(this).tokenInput("/majors.json", { 
    theme: "facebook" 
    }) 
    }); 
}); 

我覺得你的問題是由於不正確的名稱上課後,記住ID只能在出現一次的HTML文檔。

相關問題