how to execute function after cocoon add the record?

124 views Asked by At

I'm using the cocoon gem in my rails project, and I have two "link_to_add_association", but I need that depending on which link_to is pressed to do a certain function, link_to with id "link_1" adds the records to the beginning of the table and the other one adds the records at the end with other values, this is my partial form:

= form_for([@billing, @payment]) do |f|
  - if @payment.errors.any?
    = render partial: 'layouts/partials/errors/form_errors', locals: { errors: @payment.errors }
  = f.hidden_field :billing_id, value: @billing.id
  .row
    .col-md-6
      .form-group.row
        .col-md-4
          = f.label :payment, class: 'form-control-label'
        .col-md-8
          = f.text_field :payment, class: 'form-control text-right', 'data-currency-format--live': '', 'data-target': '#total-pay'
    .col-md-6
      .form-group.row
        .col-md-4
          = f.label :day, class: 'form-control-label'
        .col-md-6
          = f.text_field :day, class: 'form-control datepicker', 'data-startView': 'days', 'data-minyear': @billing.date_bill.year, 'data-minmonth': @billing.date_bill.month, 'data-minday': @billing.date_bill.day

        .col-md-1
          .links
            = link_to_add_association 'add', f, :payment_details, partial: 'payment_detail_fields',:"data-association-insertion-node" => "tbody.details",:"data-association-insertion-method" => "prepend", class:"btn btn-success btn-xs", id: "link_1"





        .col-md-1
          .links
            = link_to_add_association 'add', f, :payment_details, partial: 'payment_detail_discount_fields',:"data-association-insertion-node" => "tbody.details",:"data-association-insertion-method" => "append", class:"btn btn-success btn-xs", id: "link_2"




    .col-md-12
      #payment_details
        %table.tabla_personalizada
          %thead
            %tr
              %th value_paid
              %th voucher
              %th accion
              %th value_paid
              %th value_paid
              %th voucher
              %th accion

          %tbody.details
            = f.fields_for :payment_details do |payment_detail|
              = render 'payment_detail_fields', f: payment_detail

            %tr
              %td 
              %td 
              %td 
              %td 
              %td 
              %td 
              %td 
            %tr.descuentos
              %td Descuento
              %td Descuento              
              %td 
              %td 
              %td 
              %td 
              %td 

  .row
    .col-md-12
      = f.label :comments, class: 'form-control-label'
      = f.text_area :comments, class: 'form-control', rows: 6
  %hr
  .row
    .col-md-8
      .form-group.row
        .col-md-8
          = f.submit :class => 'btn btn-primary' 



- content_for :javascript do
  :javascript



    $(document).ready(function() {

      $("#link_1").on("cocoon:after-insert", function() {
        alert("element of link_1");
      } ) 

      $("#link_2").on("cocoon:after-insert", function() {
        alert("element of link_2");
      } ) 

    });

I tried this code but I can't find a way to make it work

$(document).ready(function() {

  $("#link_1").on("cocoon:after-insert", function() {
    alert("element of link_1");
  } ) 

  $("#link_2").on("cocoon:after-insert", function() {
    alert("element of link_1");
  } ) 

});
0

There are 0 answers