Dans une application Rails 3, je souhaite que le navigateur appelle une fonction distante lorsqu'une case est cochée. Dans Rails 2, ceci était facile à faire en passantform.submit() missing by rails.js Observateur UJS
:onclick => remote_function(...)
à l'aide de la case à cocher. Dans Rails 3, le Remote_ * fonctions sont dépréciées, donc j'ai essayé la solution suivante:
- créer une forme autour de la case à cocher en utilisant
form_tag ... :remote => true
- soumettre le formulaire en appelant
$("dummy_form").submit();
du gestionnaireonclick
Dans le fichier rails.js fourni avec Rails, un observateur écoute les événements submit
. Cependant, ceux-ci ne semblent être déclenchés que lorsque l'utilisateur clique sur un bouton de soumission, mais pas lorsque form.submit()
est appelé (jusqu'à présent testé uniquement dans FF). Cela a l'effet indésirable que l'envoi n'est pas fait en arrière-plan via AJAX, mais de façon normale, de sorte que le navigateur quitte le site actuel et affiche la réponse du contrôleur.
Est-ce que quelqu'un sait une solution de contournement? Peut-être une façon complètement différente d'obtenir la même fonctionnalité?