Donnez vie à vos documents numériques !
 

Javascript à améliorer : menu déroulant – RÉSOLU

abracadabraPDF Forums PDF – Général Javascript à améliorer : menu déroulant – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #43971
    Gatorx
    Membre

    Bonjour à tous,

    je viens d’écrire mon premier script de menu déroulant dans acobat 7 pro.  Mais hélas, seule la dernière partie fonctionne (utopia).
    il s’agit d’un menu déroulant (champ C1) dans lequel chaque élément doit indiquer le prix adhérent (champC2) et le prix invité (champC3).
    Problème de syntax ou de structure ?
    je suis malheureusement un peu à bout de mes capacités et votre aide me serais très précieuse.

    if(this.getField(« C1″).value== »U.G.C »)
    {
    this.getField(« C2″).value = »4.5 »;
    } else {
    this.getField(« C2″).value= » »;
    }
    if(this.getField(« C1″).value== »U.G.C »)
    {
    this.getField(« C3″).value = »6.40 »;
    } else {
    this.getField(« C3″).value= » »;
    }
    if(this.getField(« C1″).value== »PATHE-GAUMONT »)
    {
    this.getField(« C2″).value = »5.25 »;
    } else {
    this.getField(« C2″).value= » »;
    }
    if(this.getField(« C1″).value== »PATHE-GAUMONT »)
    {
    this.getField(« C3″).value = »7.40 »;
    } else {
    this.getField(« C3″).value= » »;
    }
    if(this.getField(« C1″).value== »UTOPIA »)
    {
    this.getField(« C2″).value = »3.15 »;
    } else {
    this.getField(« C2″).value= » »;
    }
    if(this.getField(« C1″).value== »UTOPIA »)
    {
    this.getField(« C3″).value = »4.50 »;
    } else {
    this.getField(« C3″).value= » »;
    }

8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #51775
    Merlin
    Maître des clés

    Bonjour et bienvenue,

    Il faudrait essayer avec quelque chose comme ça, plus concis :

    Code:
    if(this.getField(« C1″).value== »U.G.C »)
    {
    this.getField(« C2″).value = »4.5 »;
    this.getField(« C3″).value = »6.40 »;
    }
    else
    {
    this.getField(« C2″).value= » »;
    this.getField(« C3″).value= » »;
    }

    if(this.getField(« C1″).value== »PATHE-GAUMONT »)
    {
    this.getField(« C2″).value = »5.25 »;
    this.getField(« C3″).value = »7.40 »;
    }
    else
    {
    this.getField(« C2″).value= » »;
    this.getField(« C3″).value= » »;
    }

    if(this.getField(« C1″).value== »UTOPIA »)
    {
    this.getField(« C2″).value = »3.15 »;
    this.getField(« C3″).value = »4.50 »;
    }
    else
    {
    this.getField(« C2″).value= » »;
    this.getField(« C3″).value= » »;
    }

    Il faudrait aussi savoir comment ce script est utilisé (validation, calcul, etc .) ?
    Et selon la structure du formulaire, les conditions ELSE pourraient devenir inutiles.

    :)

    #51776
    Gatorx
    Membre

    Merci Merlin de votre réponse,

    J’utilise ce script dans la fonction calcul du menu déroulant, script de calcul personnalisé.
    Je vous joins le document sur lequel je travaille, pour plus de clarté.
    Le script modifié donne le même résultat d’erreur.
    En tout cas, merci de l’attention que vous portez à ma demande.

    [attachment deleted by admin]

    #51777
    Merlin
    Maître des clés

    Ce script fonctionne :

    Code:
    if(this.getField(« C1″).value== »U.G.C »)
    {
    this.getField(« C2″).value = »4.5 »;
    this.getField(« C3″).value = »6.40 »;
    }
    else if(this.getField(« C1″).value== »PATHE-GAUMONT »)
    {
    this.getField(« C2″).value = »5.25 »;
    this.getField(« C3″).value = »7.40 »;
    }
    else if(this.getField(« C1″).value== »UTOPIA »)
    {
    this.getField(« C2″).value = »3.15 »;
    this.getField(« C3″).value = »4.50 »;
    }
    else
    {
    this.getField(« C2″).value= » »;
    this.getField(« C3″).value= » »;
    }

    Script qu’il faut placer en validation (en demandant une validation immédiate) et non pas en script de calcul.
    Exemple joint.

    ;)

    [attachment deleted by admin]

    #51778
    alex
    Membre

    Ci joint le formulaire corrigé avec le script qui doit être lancé par le champ « C1 » (onglet Format>Catégorie de format personnalisé>Script de touches personnalisé) ://début du script
        if(!event.willCommit)
        {
    //Valeurs par defaut
        this.getField(« C2 »).value =0
        this.getField(« C3 »).value =0;
    //Valeurs conditionnelles
            if(event.change== »U.G.C »)
            {
            this.getField(« C2 »).value =4.5;
            this.getField(« C3 »).value =6.40;
            }
            if(event.change== »PATHE-GAUMONT »)
            {
            this.getField(« C2 »).value =5.25;
            this.getField(« C3 »).value =7.40;
            }
            if(event.change== »UTOPIA »)
            {
            this.getField(« C2 »).value =3.15;
            this.getField(« C3 »).value =4.50;
            }
        }

    [attachment deleted by admin]

    #51779
    Merlin
    Maître des clés

    Bien sur !
    Liste déroulante = event.change, je n’y avais pas pensé…
    :joker:

    #51780
    Lionel
    Membre

    Bonjour,

    J’ai modifié le titre du sujet pour un plus explicite.  :soleil:

    Lionel :bonjour:

    #51781
    Gatorx
    Membre

    Bonjour à tous

    Je tiens à vous remercier de vos reponses et surtout du résultat obtenue. Encore merci et vraiment félicitations pour la tenu de votre site qui est exemplaire.

    Bonne  journée à tous.
    Trés cordialement
    Gatorx(Luc)

    #51782
    Merlin
    Maître des clés

    Merci.
    :bonjour:

    :RoiReine:

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