Je souhaite attacher une fonction JQuery à un champ de saisie dans un formulaire de mise à jour. Le formulaire est standard ActiveScaffold, ouvert en cliquant sur le lien Modifier dans la liste. Comment enregistrer la fonction - quel événement signale que le sous-formulaire a été ouvert et que le DOM est prêt? Une nouvelle page n'a pas été chargée, donc la fonction onload() ne le fait pas.ActiveScaffold: attacher l'événement Javascript JQuery au sous-formulaire nouvellement ouvert
0
A
Répondre
2
Utilisez la méthode .live()
et vous n'avez pas besoin de savoir quand l'élément est réellement attaché.
Merci, c'est une super fonctionnalité que je ne connaissais pas. Cela ne correspond pas tout à fait à ce dont j'ai besoin, car (je pense) j'ai besoin d'exécuter les instructions JQuery quand le formulaire s'ouvre, pas quand quelqu'un clique dessus. Par exemple, je veux convertir une entrée en saisie semi-automatique ... $ ("#country_name") .autocomplete ({source: availableTags}). Je pense que cela devrait se produire avant que l'utilisateur essaie de cliquer sur l'entrée, non? –
@Mike, vous avez raison. La méthode live consiste à gérer les événements. Je ne suis pas un mec rubis donc je ne connais pas les internes du système d'activescaffold. Vérifiez si vous disposez d'une option de rappel lorsqu'ils lancent leur appel ajax pour récupérer le formulaire (* qui sera appelé une fois le formulaire affiché *). –
En pratique, il semble fonctionner correctement en attachant la saisie semi-automatique lorsque l'entrée est cliquée , même lorsque je tape dans l'entrée plutôt que de cliquer. Je n'ai rien vu sur les rappels, mais je pourrais demander dans le groupe ActiveScaffold. –