我正在使用rails 3和Jquery使用“添加包”按钮在form_tag中动态添加字段。我在Jquery中使用以下代码:
var counter = 1;
$('#but').click(function()
{
var s = '<%= escape_javascript(render(:partial => "form2")) %>';
var p = $(s);
$('#packagename', p).attr("name","packagename" + counter);
$('#type',p).attr("name","type" + counter);
$('#price', p).attr("name", "price" + counter);
$('#pricetype', p).attr("name", "pricetype" + counter);
$('#currency', p).attr("name", "currency" + counter);
$('.fac', p).each(function(){
$(this).attr("name", $(this).attr("name") + counter);
});
$('.pack').append(p);
counter ++;
}
为了重命名“name”属性,所以我可以使用params将字段的值传递给控制器。这是我的部分“form2”
<div class="span-16" style="padding-bottom:10px;" id="package">
<%= label_tag "PACKAGE: " %> <br /> <br/>
<%= label_tag "Name*:" %> <br />
<%= text_field_tag :packagename %>
<br />
<%=label_tag "Type:*"%> <br />
<% ["Private office", "Private room", "Shared desk"].each do |type| %>
<%= radio_button_tag "type", type, false, :class => 'option_types', :id => 'type' %>
<%= label_tag type, type %>
<% end %>
<%= render 'price' %>
<%= label_tag "Available facilities and amenities:" %><br />
<% ["Printer", "Wi-Fi"].each do |fac| %>
<%= check_box_tag fac, fac, false, :class => 'fac' %>
<%= label_tag fac, fac %>
<% end %>
</div>
但是,使用jquery添加的字段的参数不会显示在控制器或服务器的params部分中。 html源代码可以在这里找到:http://pastebin.com/AszhDL8Y 有什么想法吗?