我正在按照此视频中的说明在Rails 3中构建表单:http://railscasts.com/episodes/197-nested-model-form-part-2。
我的表单与视频中的表单有一个主要区别:我不希望能够删除表单上的一个字段,我希望能够从表单中删除一组字段。该组包含以下字段:“人数”,“性别”,“种族”,“年龄”。我能够使用本视频系列第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 %>
的application.js
function remove_fields (link) {
$(link).previous("input[type=hidden]").value = "1";
$(link).up(".audiencefields").hide();
}
答案 0 :(得分:1)
我花了一些时间试图解决这个问题,但是找不到解决方案,因为这个railscast似乎已经过时了Rails 3.我最终安装了Nested Form gem,它的工作效果非常好:{{3 }}
答案 1 :(得分: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();或者它可能不起作用。