web-dev-qa-db-fra.com

Appelez la fonction JavaScript après la soumission du formulaire AJAX

Comment puis-je appeler une fonction JavaScript après un formulaire Ajax retenu? Je veux appeler une fonction dans un fichier que j'ai ajouté avec drupal_add_js() in my_form_name_form($form, &$form_state).

2
user1750

Jetez un coup d'œil à la Ajax framework et commandes AJAX Framework sujets de la documentation de l'API.

Fondamentalement, au lieu de simplement renvoyer une seule matrice de rendu, vous pouvez renvoyer un certain nombre de commandes Ajax ainsi appelées, qui seront traduites à JavaScript et exécutées sur le côté du client. Le remplacement de l'emballage spécifié avec le contenu renvoyé n'est que la commande par défaut effectuée lorsque rien d'autre n'est spécifié.

Il ne semble pas y avoir une commande fournie qui permet d'exécuter n'importe quelle méthode JavaScript (seule une commande d'appel qui permet d'exécuter une commande jQuery sur un sélecteur défini) cependant. Cependant, vous pouvez définir votre propre commande (il suffit d'examiner ce que ces fonctions d'assistant renvoient et des fonctions JS correspondantes dans misc/ajax.js (rechercher Drupal.ajax.prototype.commands = {...).

Ou vous pourrez peut-être remplacer votre fonction JS personnalisée avec un certain nombre de commandes AJAX par défaut fournies. Ils sont assez flexibles et je suis par exemple les utiliser pour mettre à jour le titre de la page dans UserPoints.Module .

3
Berdir