Javacript executer une variable

Fermé
Andriche - 2 févr. 2010 à 20:28
3wlabs Messages postés 17 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 4 février 2010 - 3 févr. 2010 à 18:23
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

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 févr. 2010 à 20:50
executer c'est eval(....)
1
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 4 505
2 févr. 2010 à 23:07
eval() est à éviter.
Tu peux stocker une fonction dans une variable :
var operation = function() {
    document.forms[nomformulaire].submit();
};
operation(); // pour appeler la fonction
0
3wlabs Messages postés 17 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 4 février 2010 1
3 févr. 2010 à 00:27
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
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 4 505
3 févr. 2010 à 13:17
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
3wlabs Messages postés 17 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 4 février 2010 1
3 févr. 2010 à 18:23
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