En una aplicación de Rails 3, quiero hacer que el navegador llame a una función remota siempre que se active una determinada casilla de verificación. En Rails 2, esto fue fácil de hacer pasandoform.submit() perdido por rails.js Observador de UJS
:onclick => remote_function(...)
al asistente de casilla de verificación. En Rails 3, el remote_ * funciones están en desuso, por lo que intentó la siguiente solución:
- crear una forma alrededor de la casilla de verificación usando
form_tag ... :remote => true
- envíe el formulario llamando
$("dummy_form").submit();
desde el controladoronclick
En el archivo rails.js que viene incluido con Rails, hay un observador que escucha los eventos submit
. Sin embargo, estos solo parecen activarse cuando el usuario hace clic en un botón de envío, pero no cuando se llama al form.submit()
(hasta ahora probado solo en FF).
Esto tiene el efecto no deseado de que el envío no se realiza en segundo plano a través de AJAX, sino de la manera habitual, por lo que el navegador abandona el sitio actual y muestra la respuesta del controlador.
¿Alguien conoce una solución? ¿Tal vez una forma completamente diferente de obtener la misma funcionalidad?