Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Railscast 197,第2部分:如何删除Rails 3中的一组字段?_Jquery_Ruby On Rails_Ruby On Rails 3_Forms - Fatal编程技术网

Jquery Railscast 197,第2部分:如何删除Rails 3中的一组字段?

Jquery Railscast 197,第2部分:如何删除Rails 3中的一组字段?,jquery,ruby-on-rails,ruby-on-rails-3,forms,Jquery,Ruby On Rails,Ruby On Rails 3,Forms,我正在Rails 3中构建一个表单,遵循视频中的说明: 我的表单与视频中的表单有一个主要区别:我希望能够从表单中删除一组字段,而不是删除表单上的一个字段。该组包含以下字段:“人数”、“性别”、“种族”、“年龄”。我可以使用本视频系列第1部分中的复选框删除这组字段,但自从我添加了jquery功能后,它就不起作用了 有什么建议吗 new.html.erb <%= f.fields_for :audiences do |builder| %> <div class="audience

我正在Rails 3中构建一个表单,遵循视频中的说明:

我的表单与视频中的表单有一个主要区别:我希望能够从表单中删除一组字段,而不是删除表单上的一个字段。该组包含以下字段:“人数”、“性别”、“种族”、“年龄”。我可以使用本视频系列第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 %>

我相信您的jQuery有问题,请尝试查找一些函数。我想你可能在找

$(link).prev("input[type=hidden]").val = "1"
$(link).slideUp("audiencefields")
或者类似的东西。您可能正在查找$(link).prev().css(“隐藏”,true)。不完全确定,但这是可能的。检查firebug以确保您使用的所有方法都是jQuery的一部分


另外,确保所有jQuery都在$(document.ready()中;或者它可能不起作用。

我花了一段时间试图解决这个问题,但找不到解决方案,因为这个railscast对于Rails 3来说似乎已经过时了。我最终安装了嵌套表单gem,它工作得很好:

我认为您必须首先使用style='display:none'创建元素,然后在加载页面时使用.show()创建元素,然后使用.hide()将其加载到Firefox中,并使用Firebug(一个插件)查看控制台中是否有任何错误。
$(link).prev("input[type=hidden]").val = "1"
$(link).slideUp("audiencefields")