Donnez vie à vos documents numériques !
 

Afficher plusieurs champs texte selon choix effectué dans une liste déroulante

abracadabraPDF Forums PDF – Général Afficher plusieurs champs texte selon choix effectué dans une liste déroulante

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45105
    Riquet86
    Participant

    Bonjour,
    En préambule, je commence par dire que je ne connais rien au Javascript.
    J’ai consulté de multiples posts sur ce site, très riche et intéressant au demeurant, mais je n’ai pas trouvé la solution correspondant à mon besoin.
    Dans un formulaire Pdf, j’ai une liste déroulante de 8 éléments. Ce que je cherche à faire, c’est afficher un ou plusieurs champs texte en fonction du choix fait dans la liste, sachant que dans certains cas, les champs texte sont de deux types : un qui sert de libellé et l’autre est à compléter par l’utilisateur.

    Rien ne vaut des exemples pour être plus clair :
    Choix présents dans la liste :

    • Célibataire
    • Séparé
    • Marié
    • Pacsé
    • [/list]Si le choix est Célibataire ou Séparé, alors il faut juste afficher le champ texte “Fournir votre avis d’imposition” et l’utilisateur n’a rien à saisir.
      Si le choix est Marié ou Pacsé, alirs il faut afficher les champs “Nom et Prénom du conjoint” (libellé), un champ texte à compléter pour saisir le nom et prénom, “Date de Naissance” (libellé) et un champ texte pour saisir cette date.

      Je vous remercie par avance de votre aide précieuse.

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

    Bonjour et bienvenue,

    En préambule, je commence par dire que je ne connais rien au Javascript.

    Je veux bien te croire parce-que ce sujet à déjà été abordé en long et en large sur le forum.  :Smiley03:

    Comme ton cas de figure est ultra-simple je peux écrire un script vite fait mais il faudrait que tu fournisses un PDF contenant déjà les champs et la liste (avec ses intitulés).

    :Smiley15:

    #58594
    Riquet86
    Participant

    Bonjour,
    Comme demandé, ci-joint le fichier pdf et ci-dessous le résultat souhaité.
    Si choix = Célibataire, Veuf, Séparé ou divorce antérieur à 2013 : afficher uniquement AI-Rib
    Si choix = Marié, Pacsé : afficher Cjt, Nom-Cjt, Ddn-Cjt, Ddn-Cjt1, Sexe-Cjt et SexM-F. Les 2èm, 4èm et 6èm champs seront à compléter par l’utilisateur. Afficher aussi en dessous AI-Rib2
    Si choix = Concubinage – conjoint déclaré : afficher Cjt, Nom-Cjt, Ddn-Cjt, Ddn-Cjt1, Sexe-Cjt et SexM-F. Les 2èm, 4èm et 6èm champs seront à compléter par l’utilisateur. Afficher aussi en dessous Declare
    Si choix = Concubinage – conjoint non déclaré : afficher AI-Rib + Non-declare
    Enfin, si choix= divorce dans l’année 2013 : afficher Divorce2013
    Tous mes remerciements par avance.

    #58595
    Merlin
    Maître des clés

    Bonjour.

    Ci-joint le script, et le PDF fonctionnel.
    Attention j’ai modifié la liste déroulante pour y ajouter des valeurs d’exportation (sans accent ni espace).
    :Smiley15:

    A placer en script de touche personnalisé dans la liste déroulante :

    Code:
    if (!event.willCommit) {
    //
    // On masque tous les champs concernés
    this.getField(“Cjt”).display = display.hidden;
    this.getField(“Nom-Cjt”).display = display.hidden;
    this.getField(“Ddn-Cjt”).display = display.hidden;
    this.getField(“Ddn-Cjt1”).display = display.hidden;
    this.getField(“Sexe-Cjt”).display = display.hidden;
    this.getField(“SexM-F”).display = display.hidden;
    this.getField(“Declare”).display = display.hidden;
    this.getField(“AI-Rib2”).display = display.hidden;
    this.getField(“Divorce2013”).display = display.hidden;
    this.getField(“AI-Rib”).display = display.hidden;
    this.getField(“Non-declare”).display = display.hidden;
    //
    if (event.changeEx == “celibataire” || event.changeEx == “veuf” || event.changeEx == “divorce-avant-2013” || event.changeEx == “separe”)
    {this.getField(“AI-Rib”).display = display.visible;}
    //
    if (event.changeEx == “marie” || event.changeEx == “pacse”)
    {
    this.getField(“Cjt”).display = display.visible;
    this.getField(“Nom-Cjt”).display = display.visible;
    this.getField(“Ddn-Cjt”).display = display.visible;
    this.getField(“Ddn-Cjt1”).display = display.visible;
    this.getField(“Sexe-Cjt”).display = display.visible;
    this.getField(“SexM-F”).display = display.visible;
    this.getField(“AI-Rib2”).display = display.visible;
    }
    //
    if (event.changeEx == “concubinage-declare”)
    {
    this.getField(“Cjt”).display = display.visible;
    this.getField(“Nom-Cjt”).display = display.visible;
    this.getField(“Ddn-Cjt”).display = display.visible;
    this.getField(“Ddn-Cjt1”).display = display.visible;
    this.getField(“Sexe-Cjt”).display = display.visible;
    this.getField(“SexM-F”).display = display.visible;
    this.getField(“Declare”).display = display.visible;
    }
    //
    if (event.changeEx == “concubinage-non-declare”)
    {
    this.getField(“AI-Rib”).display = display.visible;
    this.getField(“Non-declare”).display = display.visible;
    }
    //
    if (event.changeEx == “divorce2013”)
    {this.getField(“Divorce2013”).display = display.visible;}
    //
    }

    #58596
    Riquet86
    Participant

    Bonjour,
    Je n’ai pas encore eu le temps de regarder et tester mais quoi qu’il en soit, merci beaucoup. :bonjour:

    #58597
    Riquet86
    Participant

    Super, je viens de tester et c’est pile ce que je voulais.  :extra: J’ai même réussi à adapter le script sur un autre formulaire, et ça marche aussi !
    Encore tous mes remerciements  :bravo:

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