IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

variable dans une fonction


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut variable dans une fonction
    Bonjour

    Je suis débutant dans la javascript, alors j'espère que vous me pardonnerez mes erreurs

    Je suis afficher une variable énoncée dans une fonction

    fonction.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    //si l'action est réalisée
    nomdelavariable = "valeur";
    page html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(typeof(nomdelavariable)!='undefined')
    {
    document.write( "" +  nomdelavariable + ""); // je ne suis pas sur de mon coup là
    }
    dans tous les cas( même si l'action est réalisée) ma variable est toujours null.Pourquoi?

    peut-être avec ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return nomdelavariable;
    merci pour votre réponse.

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Alors effectivement, si vous voulez utiliser votre variable en dehors de votre fonction, il faut la renvoyer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return nomdelavariable;
    Ca veut dire qu'il faut la récupérer de l'autre coté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var resultat = ma_fonction();
    resultat va contenir la valeur de nomdelavariable. Pour l'afficher, il ne faut plus utiliser document.write.
    Vous devez afficher la variable dans un élément de la page. Par exemple un span:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="id_span"></span>
    Pour contacter le span, vous utiliser son id et vous lui changez sa valeur (innerHTML) en lui mettant resultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("id_span").innerHTML = resultat;

  3. #3
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Le problème maintenant c'est que l'action ne se déclenche plus au onChange, mais dès le changement de la page. Qu'es ce que j'ai loupé?

    Fonctions.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    function VerifNumRencontre()
    {
    var champ = document.form.numrencontresaisie.value;
    var rule = ("[^_0-9]");
     
    if(champ.match(rule))
    {
    document.getElementById('validation_area').innerHTML='<img 
    src="/football/images/unvalid_formulaire.png" alt="erreur" /> Le numéro 
    de la rencontre ne doit être composé que de chiffres';
    return false;
    }
    if(champ.length != 8)
    {
    document.getElementById('validation_area').innerHTML='<img 
    src="/football/images/unvalid_formulaire.png" alt="erreur" /> La 
    longueur doit être de 8 chiffres';
    return false;
    }
    else
    {
    nomdelavariable = "valeur";
    return nomdelavariable;
    document.getElementById('validation_area').innerHTML='<img 
    src="/football/images/valid_formulaire.png" alt="valider" />';return 
    false;
    }
    }
    page.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form …> 
    <input type= «text»name= «numrencontresaisie» onChange =  «VerifNumRencontre()» ...>
    …
    </form>
    <div id="validation_area"></div>
    <div id="id_span"></div>
    <script ...>
    var resultat = ma_fonction();
    if(typeof(nomdelavariable)!='undefined') { document.getElementById("id_span").innerHTML = resultat; }
    </script>

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Plusieurs, à mon sens.

    Une fonction ne retourne qu'une seule valeur. Alors oui vous pouvez avoir plusieurs return dans votre fonction selon une condition, mais un seul sera exécuté et les lignes après ce return ne seront pas executées.

    Ensuite, ceci était un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var resultat = ma_fonction();
    ma_fonction est la fonction que vous voulez appeler. Je ne connais pas son nom. VerifNumRencontre, surement. Donc, vu que vous voulez appeler cette fonction sur le onchange, vous n'avez pas besoin de faire de return. A la fin de votre vérification vous pouvez directement attribuer le résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        //... 
        document.getElementById("id_span").innerHTML = resultat;
    }
    Mais bon, là je suis un peu confus. Vous ne pourriez pas envoyer le code HTML généré ?

  5. #5
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    ok merci vermine, j'ai réussi à le faire, même si ce n'est pas le résultat que j'escomptais.

    Le but de mon approche était de "valider" chacun des champs de mon input individuellement, puis de faire apparaitre un message une fois tous les champs validés.

    Je pensais ainsi créer une variable pour chaque fonction (validation des input), qui serait reprise par une fonction globale (sens éthymologique du terme) et qui testerai leur existance ou non, pour afficher ce message globale.

    je ne pense pas avoir la bonne méthode ...

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Alors vous appelez votre fonction une seule fois, au submit du formulaire (je suppose que vous avez un formulaire) et cette fonction fera ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    var mon_champ = document.getElementById("id_champ");
    var message = "";
     
     
    if(mon_champ.value == "")
        message += "\nLe champ ne peut être vide";
     
    if(mon_champ < 10)
       message += "\nLe champ doit être supérieur à 10)
     
    var mon_champ2 = document.getElementById("id_champ2");  
     
    if(mon_champ2.value == "")
        message += "\nLe champ2 ne peut être vide";
     
     
    //...
     
    if(message != "")
    {
         alert(message);
         return false;
    }
     
    return true;
    C'est un exemple, bien entendu, j'espère que vous avez compris le principe. C'est à dire qu'on prend le premier champ, on vérifie ce qu'on veut dessus et on ajoute les erreurs à "message" afin de les avoir toutes en une fois. Puis on passe au second champ et on ajoute les erreurs au même "message".

    Bon courage.

  7. #7
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    oui, au submit, j'y avais pas pensé .. (quel c..)

    merci beacoup en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de variables dans une fonction
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/07/2006, 17h49
  2. [Excel]Mettre une variable dans une fonction
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/04/2006, 12h00
  3. [Tableaux] Récuperer variable dans une fonction
    Par amarcil dans le forum Langage
    Réponses: 12
    Dernier message: 12/02/2006, 10h56
  4. Pb de variable dans une fonction :
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2005, 13h54
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo