0

このビデオの指示に従って、Rails 3 でフォームを作成しています: http://railscasts.com/episodes/197-nested-model-form-part-2

私のフォームは、ビデオのフォームと 1 つの大きな違いがあります。フォームの 1 つのフィールドを削除できるのではなく、フォームからフィールドのグループを削除できるようにしたいのです。このグループには、「人数」、「性別」、「民族」、「年齢」のフィールドが含まれています。このビデオ シリーズのパート 1 でチェックボックスを使用してこのフィールド グループを削除できましたが、jquery 機能を追加してからは機能しません。

助言がありますか?

new.html.erb

<%= f.fields_for :audiences do |builder| %>
<div class="audiencefields">

<%= builder.hidden_field :_destroy %>
<%= link_to_function "remove", "remove_fields(this)" %>
<p>
    <%= builder.label :number_of_people %><br />
    <%= builder.text_field :number_of_people %>
</p>
<p>
    <%= builder.label :gender %><br />
    <%= builder.text_field :gender %>
</p>
<p>
    <%= builder.label :ethnicity %><br />
    <%= builder.text_field :ethnicity %>
</p>
<p>
    <%= builder.label :age %><br />
    <%= builder.text_field :age %>
</p>
</div>
<% end %>

アプリケーション.js

function remove_fields (link) {
        $(link).previous("input[type=hidden]").value = "1";
        $(link).up(".audiencefields").hide();
    }    
4

2 に答える 2

1

私はこれを理解しようとしばらく時間を費やしましたが、このrailscastはRails 3では古くなっているようであるため、解決策を見つけることができませんでした。最終的にNested Form gemをインストールしましたが、うまく機能します:https://github。 com / ryanb / nested_form

于 2012-06-05T15:50:29.807 に答える
0

jQuery に問題があると思いますが、http://api.jquery.com でいくつかの関数を調べてみてください。私はあなたが探しているかもしれないと思う

$(link).prev("input[type=hidden]").val = "1"
$(link).slideUp("audiencefields")

または似たようなもの。$(link).prev().css("hidden",true) を探しているかもしれません。正確にはわかりませんが、可能です。firebug をチェックして、使用したすべてのメソッドが jQuery の一部であることを確認してください。

また、すべての jQuery が $(document).ready(); にあることを確認してください。または動作しない場合があります。

于 2012-06-04T18:42:36.600 に答える