Donnez vie à vos documents numériques !
 

Rendre obligatoires plusieurs cases à cocher pour remplir un champ texte

abracadabraPDF Forums PDF – Général Rendre obligatoires plusieurs cases à cocher pour remplir un champ texte

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46281

    Bonjour à tous,

    Je suis nouveau sur ce forum, aussi je vous remercie de votre patience et d’accepter mon ignorance….

    J’ai un client qui me demande que toutes les cases (4 au maximum) soient cochées (ensemble, pas l’une ou l’autre des cases) pour faire apparaitre un champ texte

    Pour pouvoir afficher/masquer un champ texte suite à une case cochée j’ai appliqué ce script (dans la case à cocher) :

    Code:
    if (event.target.isBoxChecked(0))
        {
      this.getField(“Date de la demande”).display = display.visible;
        }
    else
        {
    this.getField(“Date de la demande”).display = display.hidden;
        }

    Mais je me demande si je ne dois pas prendre le problème dans l’autre sens, c’est à dire mettre un script dans le champ texte (“Date de la demande”) en appliquant la condition suivante :
    Faire apparaître ce champ texte que si et seulement si les cases, 1,2,3 et 4 sont cochées.

    Par avance, merci de votre réponse,

    Bon après-midi

    Jean-Philippe

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

    Bonjour et bienvenue

    Effectivement, il vaut mieux utiliser un script de calcul dans le champ à afficher/masquer.
    Pour savoir combien de cases sont cochées le plus simple est de leur affecter la valeur “1” ainsi il n’y a plus qu’à les additionner.
    Dans ce cas de figure seul le total nous intéresse, la simple présence d’un “Off” (case non cochée) nous permet de savoir que toutes ne sont pas cochées, et comme “Off” n’est pas une valeur numérique il suffit donc de tester si la valeur de la somme des cases est un chiffre ou n’en est pas un (isNaN, voir : https://www.w3schools.com/jsref/jsref_isnan.asp).

    Exemple :

    Code:
    var nTotal = this.getField(“coche1”).value + this.getField(“coche2”).value + this.getField(“coche3”).value + this.getField(“coche4”).value;
    if (isNan(nTotal)) {event.target.display = display.hidden;}
    else {event.target.display = display.visible;}

    #67344

    Bonjour Merlin,

    Merci pour votre réponse rapide mais que je n’ai bien pas compris….

    Dois-je supprimer au préalable de le script qui permet d’afficher/masquer un champ dans le script de calcul de la case à cocher ?

    Mes cases à cocher porte des noms du type “Demande de bloquage 523 – que le motif” ou “Demande de bloquage 523 – que les fonds”, je suppose que je remplace Coche 1 2 ou 3 par mes noms “bizarres”.

    j’ai essayer d’intéger votre script mais à priori (j’ai un message d’erreur) m’indiquant un problème de syntaxe.

    Cordialement,

    Jean-Philippe

    #67345
    Merlin
    Maître des clés

    Parfois le mieux est l”ennemi du bien…  :mur:

    Restons simple, ce script fonctionne je l’ai testé :
    var nTotal = this.getField(“CheckBox0“).value + this.getField(“CheckBox1“).value + this.getField(“CheckBox2“).value + this.getField(“CheckBox3“).value;
    if (nTotal == 4) {event.target.display = display.visible;}
    else {event.target.display = display.hidden;}

    Oui, il faut supprimer tous les autres scripts, et remplacer les noms en orange par les vrais noms des cases, ou bien renommer les cases comme dans le script.

    #67346

    Bonsoir et merci Merlin.

    Je vais réessayer.

    Cordialement,

    Jean-Philippe

    #67347

    Bonsoir Merlin,

    J’ai essayer d’intégrer votre script à la fin pour les champs textes mais cela ne fonctionne pas. je dois mal m’y prendre.
    J’ai créé un doc rapide pour voir le cheminement et le déroulement. En gros si il ne coche pas la première case, il ne voit pas les autres et les dernières cases révèlent le texte.
    L’idée générale c’est que le conseiller coche des cases étape par étape et il faut qu’à la fin les cases 1-1-1 / 1-1-2 et 1-1-3  (ou les cases 2-1-1 / 2-1-2 et 2-1-3) soient  toutes cochées pour avoir accès au formulaire de textes

    Par avance, merci de votre aide.

    Jean-Philippe

    #67348
    bebarth
    Maître des clés

    bonjour,
    Voici ma solution.
    ATTENTION : Je n’ai pas modifié le nom des champs, mais ils ne doivent contenir ni espaces ni caractères accentués ou spéciaux.
    @+

    :bonjour:

    #67349

    Bonjour Bebarth,

    Je vous remercie beaucoup pour votre réponse rapide. Je vais appliqué le script sur mon document (en changeant le nom des champs évidement).

    Juste pour ma culture pourquoi le script ne se situe que sur la case “date de la demande” ?

    En tout cas merci à vous et à ce forum.

    Cordialement,

    Jean-Philippe

    #67350

    (re)bonjour Bebarth,

    Votre solution est “magique” pour un de mes deux documents. Sur le deuxième, il y a un niveau de plus de validation et je me suis perdu dans les scripts. Puis-je vous envoyer mon fichier en message privée pour que vous puissiez me sortir de cette impasse ?

    Ps.: je ne sais comment vous envoyer un mail sans “polluer” le fil de ce blog.

    Cordialement,

    Jean-Philippe

    #67351
    bebarth
    Maître des clés

    Tu cliques sur mon pseudo et tu trouveras toutes les informations nécessaires.
    @+
    :bonjour:

    #67352

    Bonsoir Bebarth,

    J’ai reçu votre message sur mon mail (CENSURÉ). J’ai essayé de vous répondre mais j’ ai un message d’erreur : “Mail Delivery System

    Cordialement,

    Jean-Philippe

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