Donnez vie à vos documents numériques !
 

Validation du formulaire PDF avec JavaScript

abracadabraPDF Forums PDF – Général Validation du formulaire PDF avec JavaScript

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46012
    PAOLO
    Membre

    bonjour,

    j’ai un formulaire en PDF dont je fais la validation en JavaScript et affiche à l’utilisateur la liste des zones obligatoires non saisies si il y en a.
    La validation par script est appelée à chaque fois que je cherche à enregistrer, enregistrer sous ou imprimer (document-actions)
    Par-contre on me demande d’interdire d’enregistrer, enregistrer sous, imprimer tant que ces erreur ne sont pas réglées.

    Comment faire ?
    event.rc = false ; ne fonctionne pas .

    Merci de vos idées

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

    Bonjour et bienvenue.

    Ce que tu demandes est techniquement faisable, mais encore une fois je n’aurai jamais de mots assez durs pour qualifier ce procédé.

    Il faudra prévenir “on” que du point de vue humain et logique c’est complètement absurde :
    – Quid de l’utilisateur qui n’a pas que ça à faire et qui voudrait terminer de remplir son formulaire plus tard ?
    – Quid de celui à qui on annonce une coupure de courant ou d’informatique dans 2 mn ?
    – Quid de celui dont l’imprimante est en panne et qui voudrait pouvoir imprimer ailleurs ?
    – Quid de celui à qui il manque des informations pour finir de remplir le formulaire ?
    – Quid de celui dont l’ordi portable vient d’annoncer “batterie : charge restante 4%” ?
    – Etc.

    L’utilisateur n’est pas plus stupide devant un formulaire PDF que devant un formulaire papier.
    Quand un de ceux là viendra avec un fusil pour te demander des explications tu pourras toujours lui dire que “on” est un con, mais ça ne le consolera pas.
    :Smiley15:

    #65292
    PAOLO
    Membre

    merci de cette réponse ,

    à laquelle je m’attendais l’ayant vue déjà sur un autre poste quasi similaire .
    mais mes donneurs d’ordre sont ceux qui traitent les formulaires mal remplis et qui en ont marre de voir des formulaires à moitié rempli sinon pas du tout.

    alors faisable techniquement , bien sûr mais comment ??

    merci

    #65293
    Merlin
    Maître des clés

    Techniquement
    On peut interdire tout ce qu’on veut à condition que l’utilisateur utilise les boutons qu’on a prévu pour lui. Cependant si l’utilisateur veut imprimer ou enregistrer via les menus ou un raccourci-clavier rien ne pourra l’en empêcher.
    C’est pour ça qu’en plus d’être absurde c’est aussi une perte de temps.  :oh:
    Mais bon, si ça peut faire plaisir à un “on” c’est toujours faisable.  :Smiley03:

    Intelligemment
    Dans les PDF on peut utiliser (entre autres) les évènements :
    – quand le document sera imprimé
    – quand le document sera enregistré

    On ne peut pas bloquer ces évènement mais on peut par exemple afficher une alerte juste avant, et ça fonctionne quelle que soit l’origine de la commande (bouton, menu, clavier…).
    Donc l’idée c’est d’afficher une alerte avant ces évènements, alerte qui averti soit que le document est OK, soit qu’il risque de ne pas pouvoir être traité parce-que certaines informations manquent. Après on peut, ou non, mettre en évidence les champs non remplis.
    À charge ensuite pour l’utilisateur d’annuler (impression) ou de finir plus tard (enregistrement).
    Un utilisateur préfère toujours qu’on fasse appel à son bon sens, même s’il n’en a pas, plutôt que de se retrouver bloqué ou contraint.

    Intelligemment (bis)
    En plus de la solution précédente, on ajoute sur chaque page du formulaire, bien en évidence la mention : “Un formulaire transmis incomplet ne pourra pas être traité”
    (Et ce sera bien fait pour vous)
    J’ai plusieurs clients qui font ça.
    :Smiley15:

    #65294
    Prop0f0L
    Participant

    Bonjour  :Smiley08:

    Il existe un moyen d’empêcher de manière indirecte l’utilisateur d’imprimer via les menus. En tout cas empêcher d’imprimer le contenu du formulaire s’il n’est pas validé. Je partage l’avis de Merlin sur cette pratique peu “user-friendly”  mais j’ai été confronté à l’obligation de trouver cette pseudo solution que je partage.

    Le document est destiné à identifier avec des petites étiquettes des seringues utilisées en réanimation. Il contient 4 champs de formulaire (Médicament, Concentration, Date de préparation, nom de l’infirmier).
    Un bouton “imprimer” est implanté dans un coin.
    Ces éléments sont visibles à l’écran et invisibles à l’impression (display.noPrint).
    Un autre champ, à l’inverse, est invisible à l’écran et visible à l’impression, et mentionne “merci d’utiliser le bouton imprimer en bas à gauche” si le bouton imprimer du menu est utilisé.
    Si tous les champs sont rempli et que le bon bouton est utilisé, les 4 champs basculent de display.noPrint à display.visible, et le champ “d’erreur” bascule de display.noView à display.hidden.
    Ensuite l’impression se lance, et les visibilités reviennent à l’état de départ.

    Certes cela empêche l’impression que par dissuasion, mais cela évite de bypasser la sécurité. :siffle:

    Voilà ma petite contribution à ce super forum qui m’a bien aidé dans l’élaboration de mes documents.  :bonjour:

    #65295
    Merlin
    Maître des clés

    :bravo:

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