Javacript executer une variable

Bonjour,

j'aurai voulu savoir si il etait possible d'executer une operation qu'on aurait stocker dans une variable en javascript.

Par exemple si je fais

function envoi(nomformulaire){
var operation="document."+nomformulaire+".submit()";
}

comment pourais je si c est possible executer ce qu'il y a dans la varaible "operation" ?

Merci de votre aide
Configuration: Windows XP Internet Explorer 7.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. eval() est à éviter.
    Tu peux stocker une fonction dans une variable :
    var operation = function() {
        document.forms[nomformulaire].submit();
    };
    operation(); // pour appeler la fonction
    1. Bonjour,

      lorsque tu écris
      var operation="document."+nomformulaire+".submit()";
      Ce qui est dans opération s'exécute, même si il est stocké dans une variable. En fait la variable contient le résultat de l'exécution.

      Bonne continuation!
      1. Mais avec la ligne « var operation="document."+nomformulaire+".submit()" » il n'y a pas d'exécution, c'est une chaine que contiendra la variable.
        Pour que la fonction s'exécute et que la variable contienne ce qu'elle retourne, ça devrait être ça :
        var operation = document.nomformulaire.submit();
        Par contre, le code que j'ai donné plus haut n'est pas exécuté car operation sera une variable contenant une fonction, pas le résultat retourné par la fonction.
    2. Bonjour,

      Il est vrai que
      var operation="document."+nomformulaire+".submit()";
      ne serve pas à grand chose à par si tu l'insère dans le dom avec une balise <script> mais je n'en voix pas trop l'intérêt. Si tu peux le mettre sous forme d'une fonction, il suffit d'appeler celle-ci pour qu'elle s'exécute.

      Donc
      function envoi(nomformulaire) {
      document.nomformulaire.submit();
      }
      nomformulaire = getElementsByName("nomformulaire") ;// or getElementsById("nomformulaire") ;
      envoi(nomformulaire) ; // c'est à cette ligne que << document.nomformulaire.submit() >> s'exécute.

      bonne continuation!