2014-08-30 74 views
1

我正在使用Ryan Bates nested_form_for:https://github.com/ryanb/nested_form。對於我的選擇陳述,我使用的是精選的:http://harvesthq.github.io/chosen/。當我點擊「添加技能」時,我無法使select語句也成爲類:'selected-select'。顯示一個新的選擇字段,但它沒有自定義CSS樣式。Rails 4 - nested_form和選擇選擇

爲了更清楚起見,原始選擇語句正確顯示,而我添加的語句沒有自定義CSS樣式(選擇選擇)。

<%= nested_form_for(@user) do |f| %>  
    <%= f.fields_for :skills do |builder| %> 
      <%= builder.select :skill, data, {}, {class: 'chosen-select'} %> 
      <%= builder.date_select :expdate, include_blank: true %> 
      <%= builder.link_to_remove "Remove" %> 
    <% end %> 

     <%= f.link_to_add "Add Skill", :skills %> 
<% end %> 

有沒有辦法讓我通過link_to_add函數添加的select語句使用類'selected-select'?

回答

2

我認爲你的問題是,當頁面加載時,選擇的插件會對元素進行更改,一旦加載頁面,添加的新元素不會改變,至少您再次調用該函數。我會在添加新元素的click事件中處理調用該函數。事情是這樣的:

$('#add-element').on 'click', -> 
    $('.chosen-select').chosen() 

我讀nested_form的文件,並在你的情況,我認爲是這樣的:

$(document).on 'nested:fieldAdded, (event)-> 
    $('.chosen-select').chosen() 

或者說,更像是說,文檔

$(document).on 'nested:fieldAdded, (event)-> 
    field = event.field 
    detefield = field.find('.chosen-select') 
    datefield.chosen() 

我認爲這有效!

PD:代碼js是Coffescript。

PD2:我認爲cocoon gem最適合這份工作。

+0

該解決方案確實有效,選定的寶石實際上在頁面加載時對元素進行了更改。你發佈的最後一個解決方案立即爲我工作。我需要刷我的咖啡標記。 – 2014-08-31 07:23:05