2010-06-16 6 views
2

en utilisant drupal avec lightbox2 pour ouvrir un formulaire. ce formulaire provient d'un module personnalisé.Drupal formulaire ne peut pas accéder à la fonction javascript (erreurs "pas une fonction")

le module a un paramètre: 'onsubmit' => 'return form_submission (this);' et cela semble fonctionner correctement.

J'ai inclus le functions.js dans le fichier theme.info et il apparaît, je peux ouvrir ce fichier et voir la fonction. Pour une raison quelconque, je continue d'obtenir "form_submission pas une fonction" quand je soumets le formulaire.

if(Drupal.jsEnabled) 
{ 
$(document).ready(function() { 
    // Call back function for AJAX call 

     var form_submission = function(responseText) { 
      alert (responseText); 
     } 

     // preventing entire page from reloading 
     return false; 
    }); 

} 

Répondre

0

La fonction formulaire_submission doit être définie.

function form_submission(data) { 
    // action code 
} 

ou aussi essayer

var form_submission = new function(data) { 
    // action code 
} 
+0

merci - mais quelque chose d'autre se passe. Je peux ajouter la fonction entre les balises de script juste au-dessus du formulaire et toujours pas de chance. J'ai essayé les deux techniques de déclaration de fonction que vous avez mentionnées – eriksays

+0

Si vous mettez une alerte juste après if (Drupal.jsEnabled), apparaît-elle? Cette condition est-elle vraie? – Kevin

0

Non que ce soit la réponse parfaite, mais je retire la fonction à l'intérieur de l'enveloppe de jquery document.ready et ramassé sur lui.

1

Votre fonction de formulaire_submission est locale à la fonction anonyme à l'intérieur (c'est-à-dire la fonction document prêt).

Vous devez déclarer la fonction dans une portée globale, en dehors du document prêt. Vous devez au moins déclarer la variable form_submission. Vous pourrez ensuite attacher la fonction là où vous le souhaitez.

+0

Bienvenue à SO, mais il semble que vous avez répondu à une question de 2010:/ – hugomg

+0

Lol, bien toujours bien d'obtenir une réponse correcte. Étrange que c'était sur la première page des questions «sans réponse» si c'était si vieux. – Leon

Questions connexes