Javacript executer une variable

Andriche -  
3wlabs Messages postés 17 Statut Membre -
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

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    executer c'est eval(....)
    1
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    eval() est à éviter.
    Tu peux stocker une fonction dans une variable :
    var operation = function() {
        document.forms[nomformulaire].submit();
    };
    operation(); // pour appeler la fonction
    0
  3. 3wlabs Messages postés 17 Statut Membre 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!
    0
    1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      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.
      0
  4. 3wlabs Messages postés 17 Statut Membre 1
     
    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!
    0