【问题标题】:Rails 4 - nested_form and chosen-selectRails 4 - nested_form 和 selected-select
【发布时间】:2023-03-22 08:45:01
【问题描述】:

我正在使用 Ryan Bates nested_form_for:https://github.com/ryanb/nested_form。对于我的 select 语句,我使用的是 selected-select: http://harvesthq.github.io/chosen/ 。当我单击“添加技能”时,我无法让选择语句也成为类:'chosen-select'。出现了一个新的选择字段,但它没有自定义 css 样式。

为了更清楚,原始的选择语句正确显示,而我添加的那些没有自定义 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 函数添加的选择语句使用类 'chosen-select' ?

【问题讨论】:

    标签: javascript jquery css ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    我认为您的问题是“选择的插件”在加载页面时对元素进行了更改,一旦加载了页面,添加的新元素不会更改,至少您再次调用该函数。我会在添加新元素的点击事件上调用该函数。像这样的:

    $('#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 最适合这项工作。

    【讨论】:

    • 这个解决方案确实有效,选择的 gem 确实在页面加载时对元素进行了更改。您发布的最后一个解决方案立即为我工作。我需要更新我的咖啡脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多