Donnez vie à vos documents numériques !
 

Champs visibles conditionnels

abracadabraPDF Forums PDF – Général Champs visibles conditionnels

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46628
    jctremblay
    Participant

    Bonjour,

    Je trouve plusieurs exemples ou la visibilité d’un champ est controlé par des cases d’options. Je me demande si c’est aussi possible de contrôlé la visibilité d’un champ selon la visibilité de plusieurs autres. Ex: Le champs “A” est visible lorsque elle champs “B” et “C” le sont aussi.

Affichage de 9 réponses de 1 à 9 (sur un total de 9)
  • Auteur
    Réponses
  • #69397
    michel c.
    Participant

    Je pense que oui, il suffit que les 2 conditions soient remplies. 
    Si la variable b = 5 alors le champ Cb est visible. 
    Si la variable c = 7 alors le champ Cc est visible. 
    Si la variable b=5 et la variable c= 7 alors le champ Ca est visible. 

    Code:
    var b = (this.getField(“saisieB”).value);
    var c = (this.getField(“saisieC”).value);

    if (b == 5 &&  c ==7) {
    this.getField(“Ca”).display = display.visible;
    this.getField(“Cb”).display = display.visisble;
    this.getField(“Cc”).display = display.visible;
    }

    else if (b == 5 && c!=7) {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.visible;
    this.getField(“Cc”).display = display.hidden;
    }

    else if (c == 7 && b!=5) {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.hidden;
    this.getField(“Cc”).display = display.visible;
    }

    else {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.hidden;
    this.getField(“Cc”).display = display.hidden;
    }

     

    ça devrait marcher je pense.

    #69398
    bebarth
    Maître des clés

    bonjour,
    Plutôt que de répéter toutes ces conditions, je pense qu’il vaut mieux écrire en script de calcul du champ A :

    Code:
    if (this.getField(“champB”).display==display.visible && this.getField(“champC”).display==display.visible) event.target.display=display.visible;
    else event.target.display=display.hidden;

    @+
    :bonjour:

    #69399
    Merlin
    Maître des clés

    Bonjour

    Je crois savoir que jctremblay fait de gros formulaires alors méfiance avec les scripts de calculs qui sont pénalisant en terme de performance quand il y en a beaucoup.
    (Tous les scripts de calcul sont exécutés à chaque clic de l’utilisateur).

    #69400
    bebarth
    Maître des clés

    Sinon, il faut l’adapter en script de validation pour les champs B et C. Ici pour le champ B :

    Code:
    if (event.target.display==display.visible && this.getField(“champC”).display==display.visible) this.getField(“champA”).display=display.visible;
    else this.getField(“champA”).display=display.hidden;

    @+
    :bonjour:

    #69401
    jctremblay
    Participant

    Bonjour, et merci pour toutes les pistes.

    Puisque les champs que j’utilisais étaient des boutons, il m’était impossible d’utiliser des scripts de calculs ou de validation. J’ai donc utilisé un JavaScript de document que j’appelle au besoin.

    Ceci n’était qu’un exercice pour saisir comment faire basculer la visibilité de boutons par d’autres boutons, puis d’afficher un bouton si les 3 premiers étaient visibles.

    Je joins mon PDF pour votre curiosité.

    #69402
    bebarth
    Maître des clés

    bonjour,
    Juste pour dire quelque chose, voici une version où tu n’as pas besoin de cases à cocher invisibles !  :geek:
    @+
    :bonjour:

    #69403
    jctremblay
    Participant

    Merci bebarth ! C’est de toute beauté.  :jerisjaune:

    #69404
    michel c.
    Participant

    Merci bebarth ! C’est de toute beauté.  :jerisjaune:

    Effectivement….

    Sinon 2 questions : dans cette ligne :

    Code:
    this.getField(theField).display=this.getField(theField).display==display.visible?display.hidden:display.visible;

    à quoi sert le “?”

    Et dans cette ligne :

    Code:
    checkABC(event.target.name.substr(0,1));

    substr(0,1)) veut dire que l’on extrait 1 caractère à partir de la position 0 du nom du bouton cible ?

    Merci

    #69405
    bebarth
    Maître des clés

    bonsoir,

    Code:
    this.getField(theField).display=this.getField(theField).display==display.visible?display.hidden:display.visible;

    à quoi sert le “?”

    C’est une autre façon décrire :

    Code:
    if (this.getField(theField).display==display.visible) this.getField(theField).display=display.hidden;
    else this.getField(theField).display=display.visible;

    ? signifie “si oui” et
    : signifie “si non” (ou “sinon”)

    Et dans cette ligne :

    Code:
    checkABC(event.target.name.substr(0,1));

    substr(0,1)) veut dire que l’on extrait 1 caractère à partir de la position 0 du nom du bouton cible ?

    Exactement ! Le bouton cible étant également le bouton source.

    @+
    :bonjour:

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