Donnez vie à vos documents numériques !
 

Liste déroulante et remplissage de champ correspondant

abracadabraPDF Forums PDF – Général Liste déroulante et remplissage de champ correspondant

  • Créateur
    Sujet
  • #72861
    falafhell
    Participant

    Bonjour,

    Je cherche un moyen “simple” (mes connaissances en programmation sont très limitées) pour associer une liste déroulante à un remplissage automatique de champ : concrètement, comment faire pour que, lorsqu’une référence est sélectionnée dans une liste déroulante, faire apparaître un libellé correspondant dans un champ de formulaire ? Existe-t-il une méthode ou un script simple pour effectuer cela ? En m’excusant par avance si la réponse se trouve déjà sur le forum… Merci d’avance pour votre aide précieuse !

     

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

    bonjour,

    en script de calcul du champ tu écris :

    event.value=this.getField(«nonChamp»).value;

    Avec des guillemets à l’anglaise…

    @+
    😎

    #72863
    falafhell
    Participant

    Merci pour cet élément de réponse.

    Si je comprends bien, je dois insérer ce script dans le champ “script de calcul personnalisé” de chaque item de ma liste… Par exemple, dans le fichier joint, si je veux faire apparaître “référence 1” en sélectionnant “code1” dans ma liste, je dois insérer : event.value=this.getField(“Text1”).reference1; ?

     

    Attachments:
    You must be logged in to view attached files.
    #72865
    Merlin
    Maître des clés

    Bonjour

     

    Chaque item de la liste déroulante doit être associé à une “valeur d’exportation”.

    Le script est placé en “script de calcul” dans le champ “Texte1”.

    Exemple ci-joint.

    Attachments:
    You must be logged in to view attached files.
    #72868
    falafhell
    Participant

    Je comprends mieux, merci beaucoup !

    #72947
    falafhell
    Participant

    Bonsoir,

    Je me permets de vous solliciter une nouvelle fois sur mon projet de liste déroulante. Le script fonctionne parfaitement, merci encore pour vos conseils ! 😊

    Ma contrainte supplémentaire est que je dois laisser à l’utilisateur la possibilité de personnaliser le contenu de la liste, en rajoutant une ligne dédiée (“Autre produit, champ à compléter”, cf. doc en PJ) pour qu’il inscrive le contenu de son choix et, en regard, pouvoir saisir librement une référence associée.

    Je coche donc l’option “Autoriser l’utilisateur à saisir un texte personnalisé”dans l’onglet options de ma liste déroulante… Sauf que, en autorisant la saisie personnalisée dans liste déroulante, le même contenu est dupliqué dans le champ “référence” dès qu’on clique dessus.

    Y’a-t-il un moyen pour “neutraliser” la copie du contenu en laissant le contenu du champ “référence” vierge et remplissable ? Par ailleurs, peut-on aussi empêcher la personnalisation des autres items de la liste déroulante qui ne devraient idéalement pas être modifiés ?

    Merci d’avance pour votre aide !

    Attachments:
    You must be logged in to view attached files.
    #72949
    bebarth
    Maître des clés

    bonjour,
    Je ne suis pas certain de bien comprendre !
    Lorsque l’utilisateur indique un élément, tu souhaites l’ajouter à ta liste sans pour cela modifier le contenu du champ texte.
    C’est ça ???

    @+
    😎

    #72950
    falafhell
    Participant

    En fait, je voudrais que la personnalisation d’un champ dans le menu de la liste déroulante ne soit pas dupliquée dans le champ texte. Or, dans le doc en pj, dès qu’on modifie un champ de la liste déroulante, il se duplique dans le champ texte dès qu’on clique dans ce dernier ou qu’on utilise la touche tab. Je ne sais pas comment l’empêcher faire pour que le champ texte associé reste vierge (et personnalisable). J’espère que c’est un peu plus clair…

     

     

    #72951
    bebarth
    Maître des clés

    bonjour,
    En script de validation du menu déroulant tu écris :
    var items=[];
    for (var i=0; i<event.target.numItems; i++) items.push([event.target.getItemAt(i,false),event.target.getItemAt(i,true)]);
    for (var i=0; i<items.length; i++) {
    if (items[0]==event.value) {
    this.getField("Text1").value=items[1];
    break;
    }
    }
    Et bien sûr tu supprimes le script de calcul du champ texte…

    @+
    😎

    P.S. : En script de validation d’un menu déroulant, event.value retourne le nom de l’élément et non la valeur d’exportation.

    • Cette réponse a été modifiée le il y a 10 mois et 3 semaines par bebarth.
    Attachments:
    You must be logged in to view attached files.
    #72954
    falafhell
    Participant

    Bonjour,

    C’est impeccable, merci infiniment !

    Bon week-end 😎

     

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