Javascript 在Rails 3中使用Jquery添加的字段在使用参数的控制器中不可见
我正在使用Rails3和Jquery,使用“AddPackages”按钮在form_标记中动态添加字段。我在Jquery中使用以下代码:Javascript 在Rails 3中使用Jquery添加的字段在使用参数的控制器中不可见,javascript,jquery,html,ruby-on-rails-3,Javascript,Jquery,Html,Ruby On Rails 3,我正在使用Rails3和Jquery,使用“AddPackages”按钮在form_标记中动态添加字段。我在Jquery中使用以下代码: var counter = 1; $('#but').click(function() { var s = '<%= escape_javascript(render(:partial => "form2")) %>'; var p = $(s); $('#packagename',
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 ++;
}
var计数器=1;
$('#but')。单击(函数()
{
var s='“form2”))%>;
var p=$(s);
$('#packagename',p).attr(“名称”,“packagename”+计数器);
$('类型',p).attr(“名称”,“类型”+计数器);
$('价格',p).attr(“名称”,“价格”+计数器);
$('#pricetype',p).attr(“名称”,“价格类型”+计数器);
$('货币',p).attr(“名称”,“货币”+计数器);
$('.fac',p).each(function(){
$(this.attr(“name”),$(this.attr(“name”)+计数器);
});
$('.pack')。追加(p);
计数器++;
}
为了重命名“name”属性,我可以使用params将字段的值传递给控制器。这是我的部分“表格2”
'选项类型',:id=>'类型'%>
'fac'>
但是,使用jquery添加的字段的参数不会显示在控制器中或服务器的params部分中。
可在此处找到html源代码:
任何想法?页面上所有元素的“id”值,包括动态添加的元素,必须是唯一的。如果您的单击处理程序运行两次,则会违反该规则,“#whatever”选择器将无法正常工作。我尝试了$('#whatever),如果多个元素具有该id,它将返回一个对象数组。我为每个项目添加了不同的id,但仍然无法正常工作。嗯,我非常确定该行为依赖于浏览器。您是否尝试过使用Firefox之类的插件来跟踪来自浏览器的HTTP请求中的实际内容?如果您的代码成功地添加了元素和名称(应该能够使用Firebug进行检查),那么就没有理由丢失它们(假设它们被添加到
块!!)。
<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>