rails example jquery ruby-on-rails unobtrusive-javascript

jquery - example - render js rails



enviar una forma remota de rieles con javascript (6)

En mi aplicación Rails tengo un formulario remoto que se parece a esto, por ejemplo:

<%= form_tag some_path, :method => :get, :id => ''my-form'', :remote => true do %> <%= text_field_tag :search, params[:search], :id => ''search-field'' %> <%= submit_tag ''Go'' %> <% end %>

Ahora me gustaría enviar este formulario a través de javascript y activar todos los rieles de devolución de llamadas de forma remota. Hasta ahora he intentado algunas cosas pero nada parece estar funcionando.

Cosas que he probado:

$(''#my-form'').trigger(''onsubmit'') $.rails.callFormSubmitBindings( $(''#search-form'') )

Pero no hay suerte hasta ahora. ¿Algunas ideas?



¿Qué tal pasar JSON desde el controlador y capturarlo por su JS.

Ahora, la acción del controlador como

respond_to do |format| if some condition format.json { render :json => {:success => true} } format.html{ redirect_to some_path, :notice => "successfully created" } else ... end end

Y capturando al json en js como

$(''#my-form'').bind ''ajax:success'', (event,data) -> if(data.success == true) ...

No es exactamente lo que estás buscando, pero espero que esto te sirva de ayuda.


En Rails 5.1+, que reemplaza los antiguos jquery-ujs con rails-ujs no-jquery rails-ujs , las respuestas anteriores ya no funcionan, siempre se envía el formulario a través de una solicitud HTTP HTTP. Así es como se activa el nuevo controlador de eventos de rieles:

var elem = document.getElementById(''myform'') // or $(''#myform'')[0] with jQuery Rails.fire(elem, ''submit'');

(No puedo decirle cuánto tiempo tardé en darme cuenta de eso ...) Por alguna razón, los eventos regulares no se combinan correctamente con el controlador de eventos delegado conectado por rieles que utilizan la nueva función de delegado de rieles, cuando son activados por jQuery.


Esto es simplemente a la manera de Rails:

$("#myform").trigger(''submit.rails'');


La respuesta de @mltsy funciona perfectamente para mí. Sin embargo, quiso reiterar que esto requiere el uso de rails-ujs. Si ha actualizado desde una versión anterior como yo, es posible que aún esté utilizando jquery_ujs dependiente de jquery. Si está obteniendo ReferenceError: Can''t find variable: Rails en su consola, verifique su application.js y asegúrese de que tenga una buena respuesta de rails-ujs o @ mltsy. Quería dejar un comentario en lugar de una respuesta, pero Stack no me deja.


Puedes usar .submit ();

$("#my-form").submit();