0

さらにボタンを追加することでロードされるネストされたフォームがあります。ネストされたフォームにはラジオボタンがあります。ラジオ ボタンに従って、div を非表示または表示するために JavaScript 関数が呼び出されます。ただし、2 つ以上のフォームの場合、ラジオ ボタンの JavaScript は最初の div を呼び出します。これは、div id が静的であるためです。助けてください。ここにコード。

form.html.erb

 <%= f.fields_for :book_chapters  do |book| %>
 <%= render '/publications/book_chapter', :ff => book %>
 <% end %>
 <%= f.link_to_add "Add chapter", :book_chapters, :class => "add_category_link"%>

_book_chapter.html.erb

<%= ff.input :chapter_no %>
<%= ff.input :chapter_title %>
<%= ff.input :description %>
<%= ff.input :pdf, :hint => "Please upload Pdf's Only." %>     
<div class="control-group string optional">
  <label class="string optional control-label">Plan</label>
<div class="controls">
<%= ff.radio_button :plan, "free", :class=>"relat__atu relat__atu_no" %> Free
<%= ff.radio_button :plan, "premium", :class=>"relat__atu relat__atu_yes" %>Premium

<script>
  jQuery(".relat__atu").on("change", function(){
    jQuery("#esatu").toggle($(this).hasClass("relat__atu_yes"));
  })
</script>

<div id="esatu" style="display:none">
  <label for="relat_tipus_atu">
    <%= ff.input :credits %>
  </label>
</div>

<div class="controls">
  <%= ff.link_to_remove "remove", :class => "remove_category" %>
</div>
4

2 に答える 2

0

ネストされたフォーム gem を調べることで、この問題を解決できました。ネストされた gem の内部では、追加ごとに一意の ID が動的に生成されます。data-blueprint が解析され、"new_#{association}" が生成された一意の ID に置き換えられます。id = "book_chapters" で新しい行を割り当て、新しい行が追加されたときに一意の ID に置き換えました。

多分それは他の誰かに役立つ

于 2013-05-31T04:47:03.277 に答える