Donnez vie à vos documents numériques !
 

Simplification d’un code

abracadabraPDF Forums PDF – Général Simplification d’un code

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46561
    Scorpion1611
    Membre

    Bonjour à tous,

    Débutant dans le langage javascript, je bute sur une simplification d’un code.
    J’ai une « case à cocher » et lorsque je l’active, j’ai des champs (zone de liste et/ou texte) qui apparaissent. Quand je la désactive, ils disparaissent.
    J’ai réussi à faire cette manipulation en récupérant des infos sur votre forum.

    Voici mon code : (N’oubliez pas que je suis débutant  :Smiley08: )

    Code:
    var str = event.target.name;
    var res = str.split(« _ »);
    var Nb = (res[2]);

    if (this.getField(« 1-ON_EE_ » + Nb).isBoxChecked(0))
        {
                this.getField(« 2-F_EE_ » + Nb).display = display.visible;
                this.getField(« 3-G_EE_ » + Nb).display = display.visible;
                this.getField(« 4-SB_EE_ » + Nb).display = display.visible;
                this.getField(« 7-M_EE_ » + Nb).display = display.visible;
                this.getField(« 8-SR_EE_ » + Nb).display = display.visible;
                this.getField(« 9-COM__EE_ » + Nb).display = display.visible;
        }
    else
        {
                this.getField(« 2-F_EE_ » + Nb).display = display.hidden;
                this.getField(« 3-G_EE_ » + Nb).display = display.hidden;
                this.getField(« 4-SB_EE_ » + Nb).display = display.hidden;
                this.getField(« 7-M_EE_ » + Nb).display = display.hidden;
                this.getField(« 8-SR_EE_ » + Nb).display = display.hidden;
                this.getField(« 9-COM__EE_ » + Nb).display = display.hidden;
        }

    Pensant qu’il est possible de l’améliorer, j’ai essayé d’adapter mon code avec celui trouvé ici http://abracadabrapdf.net/forum/index.php/topic,501.msg2244.html#msg2244

    Code:
    var Bt = getField(« BtChoixMontage »)
    Bt.display = display.visible;

    Je l’ai testé en renommant mes différents champs Test1.1, Test1.2, Test1.3, etc mais visiblement j’ai du loupé quelque chose car celui-ci ne fonctionne pas

    Code:
    var str = event.target.name;
    var res = str.split(« _ »);
    var Nb = (res[2]);

    if (this.getField(« 1-ON_EE_ » + Nb).isBoxChecked(0))
        {
                this.getField(« Test1 »).display = display.visible;
        }
    else
        {
                this.getField(« Test1 »).display = display.hidden;
        }

    Avez-vous une idée de l’erreur que je commets ?

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Auteur
    Réponses
  • #68994
    Scorpion1611
    Membre

    En fait j’ai trouvé une astuce pour alléger mon code.

    Comme j’ai plusieurs cases à cocher je passe par une fonction.
    Sur chaque case à cocher j’ai mis le code suivant :

    Code:
    var str = event.target.name;
    var res = str.split(« _ »);
    var Nb = (res[2]);

    Affichage_Calcul(str,Nb)

    et la fonction qui va afficher/masquer mes différents champs :

    Code:
    function Affichage_Calcul(Nom,Num)
    {
        for (var i=1; i<=5; i++) {
            if (this.getField(Nom).isBoxChecked(0))
            {
                this.getField(« CAC » + Num + « _ » +i).display = display.visible;
            }
            else
            {
                this.getField(« CAC » + Num + « _ » +i).display = display.hidden;
            }
        }
    }

    #68995
    bebarth
    Maître des clés

    bonjour,
    Tu peux essayer comme ça, ce sera encore un peu plus allégé !

    Code:
    var res = event.target.name.split(« _ »);
    var Nb = (res[2]);

    Affichage_Calcul(str,Nb);

    function Affichage_Calcul(Nom,Num) {
    for (var i=1; i<=5; i++) {
    if (this.getField(Nom).value!= »Off ») this.getField(« CAC » + Num + « _ » +i).display = display.visible;
    else this.getField(« CAC » + Num + « _ » +i).display = display.hidden;
    }
    }

    @+
    :bonjour:

    #68996
    Scorpion1611
    Membre

    Génial, merci beaucoup pour ton aide Bebarth  :bravo:

Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.