Donnez vie à vos documents numériques !
 

Menu déroulant obligatoire. – RÉSOLU

abracadabraPDF Forums PDF – Général Menu déroulant obligatoire. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44495
    JRV
    Membre

    Bonjour,

    Je suis à la recherche d’une façon de rendre un menu déroulant obligatoire à partir d’Acrobat. En utilisant uniquement la propriété Obligatoire, lors d’un envoi par courriel le champ n’est pas validé puisqu’au final il y a toujours une entrée d’inscrite (espace ou sélectionner).

    Merci à l’avance.

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

    Bonjour et bienvenue,

    C’est effectivement un peu particulier de vouloir qu’un menu déroulant soit obligatoire…
    JavaScript peut certainement aider, tout dépend du résultat que l’on veut et de ce que l’on contrôler, veut on savoir juste si l’utilisateur à cliqué dessus ?, ou bien s’il a sélectionné une valeur particulière ?

    Il faudrait en savoir plus pour aller plus loin.

    :Smiley01:

    #54890
    JRV
    Membre

    Merci!

    En fait, je pensais utiliser une espace comme position initiale et l’utilisateur aurait ensuite à sélectionner parmi les choix. J’ai donc besoin d’un code qui détecte que le menu est resté à sa position initiale et empêche l’envoi du formulaire. Jusqu’à maintenant j’évitais d’utiliser les menus lorsqu’ils devaient être obligatoire, mais là je frappe un mur!

    #54891
    Merlin
    Maître des clés

    Le vrai problème c’est de détecter si le menu n’a pas été utilisé du tout ou s’ il est revenu à sa position initiale après avoir été manipulé.
    Et faute de savoir le pourquoi et le comment il est difficile d’apporter une réponse précise.
    :Smiley01:

    #54892
    JRV
    Membre

    En effet, je ne suis pas clair…! J’ai par exemple deux cases à cocher “Professionnel” et “Cadre”, si l’utilisateur sélectionne “Professionnel” le menu déroulant “Type d’emploi” apparaît et ce dernier doit devenir obligatoire. Si le champ reste à sa valeur initiale, soit une espace, le formulaire ne doit pas être envoyé. Donc, lors de l’envoi, j’aurais besoin d’un code qui dirait : si la valeur du champ “Type d’emploi” est ” ” ne pas envoyer le formulaire avec un pop up qui indique que ce dernier est obligatoire. Je sens que le client va endurer son menu non obligatoire!

    #54893
    Merlin
    Maître des clés

    La documentation JavaScript n’est pas évidente non plus :

    – il y est bien précisé que la propriété Required (obligatoire) est vérifiée quand la valeur du champ concerné est nulle,
    – il y est précisé aussi que seuls les champs de type bouton ne sont pas concernés par cette propriété.

    On mesure mieux à quel point tout ceci n’est pas une science exacte quand on sait qu’il n’est pas possible d’attribuer une valeur nulle à un élément d’une Zone de liste ou d’une Liste déroulante

    Donc, il me parait préférable d’utiliser un champ de type texte qui affiche un menu déroulant (un vrai, en JavaScript) quand on clique dessus.

    :Smiley15:

    #54894
    JRV
    Membre

    Je ne sais pas pourquoi je n’ai pas pensé à un champ texte, j’étais focalisé sur mon menu déroulant. Très bonne idée, merci.

    #54895
    Merlin
    Maître des clés

    :bonjour:

    #54896
    nekosan3
    Participant

    Bonjour,

    Bon, je déterre un post de plus de 120 jours mais je pense que c’est une suite logique.

    Sur une liste déroulante (la liste s’appelle KIT_besoin avec un élément par défaut qui est “Choisir dans la liste…” qui a une valeur d’exportation “1”), je suis arrivé à faire apparaître une fenêtre d’alerte qui mentionne que l’on doit choisir obligatoirement une option, si l’utilisateur n’a pas fait son choix.

    Avec des bouts de code (via le forum que je remercie  :bonjour: ) j’obtiens ce code javascript que j’ai placé sur un champ de texte suivant qui fait apparaître la fenêtre d’alerte sur l’action “Souris relâchée” en voici le code :

    Code:
    if ((this.getField(“KIT_besoin”).value==1))
    {
    app.alert(“Vous devez choisir un kit dans la liste.rMerci de cliquer OK et de le préciser, svp”,1)
    }
    else
    {
    }

    jusqu’ici tout va bien, sauf que l’utilisateur est obliger de choisir une option soit sur une liste déroulante soit sur une des cases à cocher (y en deux).
    Du coup si l’utilisateur choisit l’une des cases à cocher, le choix sur la liste déroulante n’est pas changé, et la fenêtre d’alerte apparaît quand même
    (j’ai tenté de cacher cette liste déroulante quand on clic sur l’une des cases via un hidden mais la fenêtre d’alerte apparaît aussi )

    Est-il possible sur une case à cocher de changer la valeur de la liste déroulante afin que l’utilisateur n’est pas de message d’alerte dans le champ de texte suivant ?

    J’ai tenté avec ce bout de code mais pas de résultat :

    Code:
    if (this.getField(“horskit “).isBoxChecked(0))
    {this.getField(“cache-kit”).display = display.visible;
    this.getField(“KIT_besoin”).value == “3”}
    else
    {this.getField(“cache-kit”).display = display.hidden;
    Initialisation();
    }

    Quelqu’un aurait une solution ?

    Merlin m’entends-tu  :merlin: ?

    Bon merci à tous ! Ma persévérance m’a été récompensé, ou alors Merlin a des dons de télépathe !
    Voici le code si dessous qui au choix d’une check box change la valeur de la liste déroulante et permet ainsi de passer
    au champ de texte suivant sans avoir la fenêtre d’avertissement ou si alors si la case est décocher remet la valeur par défaut :

    Code:
    if (this.getField(“horskit “).isBoxChecked(0))
    {this.getField(“cache-kit”).display = display.visible;
    this.getField(“KIT_besoin”).value = “2”}
    else
    {this.getField(“cache-kit”).display = display.hidden;
    this.getField(“KIT_besoin”).value = “1”
    Initialisation();
    }

     

    #54897
    Merlin
    Maître des clés

    Ma persévérance m’a été récompensé, ou alors Merlin a des dons de télépathe !

    Non, je te rassure
    Seules ta persévérance et ta logique sont en cause.
    :Smiley01:

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