Donnez vie à vos documents numériques !
 

Liste déroulante en lien avec un champ ou une autre liste déroulante

abracadabraPDF Forums PDF – Général Liste déroulante en lien avec un champ ou une autre liste déroulante

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46435
    f.belly
    Participant

    Bonjour,

    grâce à vos conseils sur le forum, j’ai réussi à faire deux listes déroulantes où les valeurs de la deuxième dépendent de la réponse à la première. Jusque là pas de problème.
    Mon souci est que pour que la prise en compte de la première liste déroulante se fasse : il faut que je sélectionne une première fois, puis une deuxième fois en double-cliquant, autant dire… trop de clic!
    Que faut-il que je fasse ?

    Pour ce faire, j’ai utilisé
    Adobe acrobat Pro DC, propriété de ma première liste déroulante, format, script de touche personnalisé :

    Code:
    if (this.getField(“Dropdown1″).value ==”BE”) {
    this.getField(“Dropdown2”).display =display.visible;
    this.getField(“Dropdown3”).display =display.hidden;
    this.getField(“Dropdown4”).display =display.hidden;
    }

    Et dans l’onglet action, souris relâchée, dans l’onglet Options, “Valider la valeur sélectionnée immédiatement “est coché…
    Merci à vous,

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

    Pour les listes déroulantes il faut utiliser le “Script de touche perso”. Ça c’est bon.
    Là où ça cloche c’est que tu utilises value : c’est la valeur du champ, celle qui était déjà enregistré avant qu’on clique dessus (d’où le temps de retard).
    Dans les champs liste déroulante et zone de liste il faut utiliser changeEx qui représente la valeur en cours d’évènement :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJS/event_properties.htm?rhhlterm=willcommit&rhsyns=%20#XREF_64007_changeEx

    En plus il faut protéger le tout avec willCommit pour éviter que le script ne tourne à vide :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJS/event_properties.htm?rhhlterm=willcommit&rhsyns=%20#XREF_47823_willCommit

    Ce qui nous donne ce script, auquel j’ai ajouté le else pour que les champs reviennent à l’état précédent si l’utilisateur change d’avis (non testé) :

    if (!event.willCommit) {
    if (event.changeEx == “BE”) {
    this.getField(“Dropdown2”).display = display.visible;
    this.getField(“Dropdown3”).display = display.hidden;
    this.getField(“Dropdown4”).display = display.hidden;
    }
    else {
    this.getField(“Dropdown2”).display = display.hidden;
    this.getField(“Dropdown3”).display = display.visible;
    this.getField(“Dropdown4”).display = display.visible;
    }

    }

    #68238
    f.belly
    Participant

    MERCI !
    Oui pour le else, je ne l’avais pas mis dans ce que je vous ai envoyé, car je n’ai pas mis tout mon code !
    Ça fonctionne très bien avec votre solution !
    MERCI
    Bonne soirée à vous et prenez soin de vous!
    Je n’exclus pas d’avoir besoin de nouveau à votre aide !

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