0

我在 ruby​​ 中使用 cocoon 制作了一个功能性嵌套形式。问题是我试图使用插入前和插入后,但它什么也没做。

我的看法:

<div class="row" id="street_enter_itineraries">
          <table>
            <div class="street_enter_itineraries" >
              <%= f.fields_for :street_enter_itineraries do |builder| %>
                <%= render 'street_enter_itinerary_fields', f:builder %>
              <% end %>
            </div>
          </table>
            <div class="row">
              <%= link_to_add_association  "Añadir calle de entrada",f, :street_enter_itineraries, class: 'btn btn-info', data: {association_insertion_node: '.street_enter_itineraries', association_insertion_method: :append}  %>
            </div>
          </div>

我的 javascript

 $(document).ready(function() {
    $('#street_enter_itineraries')
        .on('cocoon:before-insert', function() {
            var allIds= document.getElementsByClassName("tipocalleentradaidentificar");
            if(allIds.length > 3){
                event.preventDefault();
            }
        })
        .on('cocoon:after-insert', function() {
            refreshID();
        })
});

我看过这个帖子:茧添加关联,如何限制关联的数量,因为它是我想做的。我也试过这个选项,控制台是空的:

 $(document).on('cocoon:after-insert', '.content form', function(e) {
    console.log('Something');
});

提前致谢。

4

1 回答 1

1

您的 jquery 选择器错误,您在开始时忘记了#表示搜索 id 的意思。所以你写了$('street_enter_itineraries'),你应该写

$('#street_enter_itineraries')

[编辑]制作js turbolinks相对容易,要么确保它被触发turbolinks:load,而不是使用文档就绪事件(在你的情况下可能是最简单的)

$(document).on('turbolinks:load', function(e) {
    $('#street_enter_itineraries') ...
})

或使用正确的选择器在文档上注册茧处理程序:

$(document).on('cocoon:before-insert', '#street_enter_itineraties', function(e) {
   // do something here
}
于 2019-02-21T20:41:15.460 回答