I'm developing my application in rails, in my app I'm extracting a form in a modal window through ajax, the form has a cocoon button to add nested records, the problem comes when adding new nested resources with cocoon those new fields do not respond to a javascript function that detects if the field changed the value
my application.js
function validateFileType(){ $( ".file_to_upload" ).change(function() { alert( "Handler for .change() called." ); }); }
part of my index.haml.erb:
=link_to '<i class="fa fa-picture-o"></i>'.html_safe, adjuntar_archivos_path(:id => record), :remote => true #adjuntar_archivos
my method in controller
def adjuntar_archivos @billing = Billing.find_by_id(:id) end
my adjuntar_archivos.js.erb
$("#adjuntar_archivos").html("<%=j render :partial => 'adjuntar_archivos'%>"); $("#addDataModelModal").modal("show"); validateFileType();
my partial _adjuntar_archivos.html.haml
#addDataModelModal.modal.fade{"aria-hidden" => "true", "aria-labelledby" => "exampleModalLabel", role: "dialog", tabindex: "-1"} .modal-lg.modal-dialog{role: "document"} .modal-content = form_for(@billing, remote: true) do |f| .modal-header %h5#addDataModelModalLabel.modal-title Archivos adjuntos %button.close{"aria-label" => "Close", "data-dismiss" => "modal", type: "button"} %span{"aria-hidden" => "true"} × .modal-body .links = link_to_add_association "<i class='fa fa-plus'></i> Añadir adjunto".html_safe, f, :billing_files, partial: 'billing_file_fields',:"data-association-insertion-node" => "tbody.adjuntos",:"data-association-insertion-method" => "prepend", class:"btn btn-success btn_naranja btn", id: "link_1" .row .col-md-12 #payment_details %table.tabla_personalizada#tabla_detalle_pago %thead %tr %th Descripción %tbody.adjuntos = f.fields_for :billing_files do |billing_file| = render 'billing_file_fields', f: billing_file .modal-footer %button.btn.btn-secondary{"data-dismiss" => "modal", type: "button"} Close .text-center = f.submit 'Guardar', :class => 'pull-right btn btn-primary'
my partial _billing_file_fields.html.haml
%tr.nested-fields.detalle_pago %td= f.text_field :description, class: 'form-control file_to_upload'
how can i make the new fields created by cocoon also run the .change method of my javascript function?
UPDATE:
I have tried to execute the function within the partial "billing_file_fields.html.haml" in the following way:
%tr.nested-fields.detalle_pago %td= f.text_field :description, class: 'form-control file_to_upload' - content_for :javascript do :javascript validateFileType();
but it still doesn't work
validateFileType();
inside_billing_file_fields.html.haml