abracadabraPDF › Forums › PDF – Général › Menu déroulant obligatoire. – RÉSOLU
- Ce sujet est vide.
-
CréateurSujet
-
12 avril 2013 à 20:29 #44495JRVMembre
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.
-
CréateurSujet
-
AuteurRéponses
-
13 avril 2013 à 09:27 #54889MerlinMaî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:
14 avril 2013 à 20:13 #54890JRVMembreMerci!
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!
14 avril 2013 à 22:05 #54891MerlinMaître des clésLe 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:15 avril 2013 à 14:16 #54892JRVMembreEn 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!
15 avril 2013 à 15:46 #54893MerlinMaître des clésLa 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:
16 avril 2013 à 18:31 #54894JRVMembreJe 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.
16 avril 2013 à 18:45 #54895MerlinMaître des clés:bonjour:
20 septembre 2013 à 14:04 #54896nekosan3ParticipantBonjour,
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();
}20 septembre 2013 à 20:24 #54897MerlinMaître des clésMa 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: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.