我需要做的只是增加" p"每次按下添加按钮时标记或减少相同的值" p"标记删除按钮。
好吧,嵌套表单使用partial来添加一个新行来管理de main表单视图里面的嵌套表单这里是我的部分代码:
:order
在我的主视图中,使用以下代码渲染此部分:
<tr class="fields">
<td>
<%= f.text_field :nombre, class: 'form-control' %>
</td>
<td>
<%
concat f.select :idtipodocumento, CrTipoDocumento.all.collect
{|p| [ p.nombre, p.id ] }, {prompt: 'Seleccione el tipo de
documento'}, :class=>'form-control'
%>
</td>
<td>
<%= f.text_field :documento, class: 'form-control' %>
</td>
<td>
<%= f.link_to_remove raw('<i class="fa fa-minus-circle" aria-
hidden="true"></i>'), :class =>'btn btn-danger' %>
</td>
</tr>
我还有添加按钮来添加新的行,效果很好:
<tbody>
<fieldset id="acreditados">
<%= f.fields_for :cr_acreditados, :wrapper => false %>
</fieldset>
</tbody>
我使用javascript来更新&#34; p标签&#34;文本每次按下添加按钮或按下删除按钮时,添加按钮的javascript工作正常!这是代码:
<div id="addBtn">
<% if @counter >= 1 %>
<p><%= f.link_to_add raw('<i class="fa fa-plus-circle" aria-
hidden="true"></i>'), :cr_acreditados, id: 'btna', :class =>
'btn btn-primary lta', "data-target" => "#DAC" %></p>
<% else %>
<p class="text-center"><h3>No dispone de mas
acreditaciones</h3></p>
<% end %>
</div>
我希望删除按钮执行相反的操作,这将是+#p;标记&#34;文本,事情是,javascript代码无法检测新添加的行上的点击事件,但他在视图加载时检测到从数据库加载数据的行,这是我删除按钮的实际js代码:
$( document ).ready(function() {
$('.add_nested_fields').click(function(adLine){
var cnt = document.getElementById('acd').innerHTML;
if(cnt <= 1){
if(cnt == 0)
{
alert("You cant add more rows")
adLine.preventDefault();
adLine.stopPropagation();
}
else
{
var res = cnt - 1;
$('#acd').html(res);
}
}
else{
var res = cnt - 1;
$('#acd').html(res);
}
});
});
答案 0 :(得分:0)
做到了!只需挖掘一下gem的官方文档: https://github.com/ryanb/nested_form
他甚至做了一种计算和限制字段最大值的方法!链接在这里: https://github.com/ryanb/nested_form/wiki/How-to:-limit-max-count-of-nested-fields