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 :

Passage de paramêtres dans une fonction en javascript


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Passage de paramêtres dans une fonction en javascript
    Bonjour,

    J'ai besoins d'aide au niveau code/algorithme.

    Comme vous pouvez le voir mes trois fonctions se ressemblent fortement.
    Est il possible de créer une seule fonction général où je puisse passer mes id en paramètre ?
    J'ai tenté différente choses sans succès et mes connaissances en javascript et programmation objet me permette pas de voir une solution.

    Code html : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
                <tr>
                    <td class="de_classe" id="acrobatie">O</td>
                    <td>Acrobatie</td>
                    <td colspan="2">@</td>
                    <td>DEX*</td>
                    <td id="totalCompetenceAcrobatie"></td>
                    <td>=</td>
                    <td class="carac_dex" onChange="calculeCompetenceAcrobatie()" id="acrobatie_carac"></td>
                    <td>+</td>
                    <td>
                        <input type="text" name="acrobatie_maîtrise" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceAcrobatie()" id="acrobatie_maîtrise">
                    </td>
                    <td>+</td>
                    <td>
                        <input type="text" name="acrobatie_divers" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceAcrobatie()" id="acrobatie_divers">
                    </td>
                </tr>
     
                <tr>
                    <td class="de_classe" id="art_de_la_magie">O</td>
                    <td>Art de la magie</td>
                    <td colspan="2">@</td>
                    <td>INT</td>
                    <td id="totalCompetenceArt_de_la_magie"></td>
                    <td>=</td>
                    <td class="carac_int" onChange="calculeCompetenceArt_de_la_magie()" id="art_de_la_magie_carac"></td>
                    <td>+</td>
                    <td>
                        <input type="text" name="art_de_la_magie_maîtrise" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceArt_de_la_magie()" id="art_de_la_magie_maîtrise">
                    </td>
                    <td>+</td>
                    <td>
                        <input type="text" name="art_de_la_magie_divers" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceArt_de_la_magie()" id="art_de_la_magie_divers">
                    </td>
                </tr>
     
                <tr>
                    <td class="de_classe" id="artisanat_I">O</td>
                    <td>Artisanat</td>
                    <td>@</td>
                    <td>(aaa)</td>
                    <td>INT</td>
                    <td id="totalCompetenceArtisanat_I"></td>
                    <td>=</td>
                    <td class="carac_int" onChange="calculeCompetenceArtisanat_I()" id="artisanat_I_carac"></td>
                    <td>+</td>
                    <td>
                        <input type="text" name="artisanat_I_maîtrise" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceArtisanat_I()" id="artisanat_I_maîtrise">
                    </td>
                    <td>+</td>
                    <td>
                        <input type="text" name="artisanat_I_divers" size="2" maxlength="2" pattern="[0-9]{1,2}" value=0 onChange="calculeCompetenceArtisanat_I()" id="artisanat_I_divers">
                    </td>
                </tr>

    Code javascript : 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
     
    function calculeCompetenceAcrobatie() {
        document.getElementById('totalCompetenceAcrobatie').innerHTML = parseInt(document.getElementById('acrobatie_carac').innerHTML)
                                                                      + parseInt(document.form.acrobatie_maîtrise.value)
                                                                      + parseInt(document.form.acrobatie_divers.value);
    }
     
    function calculeCompetenceArt_de_la_magie() {
        document.getElementById('totalCompetenceArt_de_la_magie').innerHTML = parseInt(document.getElementById('art_de_la_magie_carac').innerHTML)
                                                                            + parseInt(document.form.art_de_la_magie_maîtrise.value)
                                                                            + parseInt(document.form.art_de_la_magie_divers.value);
    }
     
    function calculeCompetenceArtisanat_I(){
        document.getElementById('totalCompetenceArtisanat_I').innerHTML = parseInt(document.getElementById('artisanat_I_carac').innerHTML)
                                                                        + parseInt(document.form.artisanat_I_maîtrise.value)
                                                                        + parseInt(document.form.artisanat_I_divers.value);
    }

    Merci de votre aide.

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut tu pourrais faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function calculeCompetences(id1, id2){
        document.getElementById(id1).innerHTML = parseInt(document.getElementById(id2).innerHTML)
                                                                        + parseInt(document.form.artisanat_I_maîtrise.value)
                                                                        + parseInt(document.form.artisanat_I_divers.value);
    }
     
    //ex:
    calculeCompetences('totalCompetenceArt_de_la_magie', 'art_de_la_magie_carac');
    calculeCompetences('totalCompetenceAcrobatie', 'acrobatie_carac');
    calculeCompetences('totalCompetenceArtisanat_I', 'artisanat_I_carac');
    L'idée est la et peux être améliorer selon tes besoins.

    Bonne continuation.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci de ton aide.
    C'est une bonne piste mais je voudrais passer aussi 'maîtrise' et 'divers' en paramêtre.
    Et je bloque, il me déclare que parseInt('document.form.' + maîtrise + '.value') est un NaN.

    Comment faire pour récupérer la valeur de document.form.acrobatie_maîtrise.value et document.form.acrobatie_divers.value

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onChange="calculeCompetence('totalCompetenceAcrobatie','acrobatie_carac','acrobatie_maîtrise','acrobatie_divers')

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function calculeCompetence(total,carac,maîtrise,divers) {
        document.getElementById(total).innerHTML 
                                                = parseInt(document.getElementById(carac).innerHTML)
                                                + parseInt('document.form.' + maîtrise + '.value')
                                                + parseInt('document.form.' + divers + '.value');
    }

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Il faut faire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onChange="calculeCompetence('totalCompetenceAcrobatie', 'acrobatie_carac', document.form.acrobatie_maîtrise, document.form.acrobatie_divers)


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    //1 paramètre string 
    //2 paramètre string
    //3 paramètre object
    //4 paramètre object
     
    function calculeCompetence(total,carac,maîtrise,divers) {
        document.getElementById(total).innerHTML 
                                                = parseInt(document.getElementById(carac).innerHTML)
                                                + parseInt(maîtrise.value)
                                                + parseInt(divers.value);
    }

    Bonne continuation.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    HA LA RUSE.

    J'ai essayé plein de chose sauf cela.

    C'est bon ça marche, merci tout plein.

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

Discussions similaires

  1. Passage de paramètres dans une fonction
    Par Mickael2604 dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2008, 22h42
  2. Réponses: 6
    Dernier message: 31/05/2008, 15h45
  3. Réponses: 3
    Dernier message: 20/03/2006, 17h46
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13

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