Donnez vie à vos documents numériques !
 

Champs obligatoires et signature numérique

abracadabraPDF Forums PDF – Général Champs obligatoires et signature numérique

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45131
    pipotofluto
    Membre

    Bonjour,

    J’ai créé un formulaire avec des champs obligatoires et une signature numérique.
    Le problème c’est que lorsque l’utilisateur signe le document, ce dernier est enregistré et il squizze l’obligation des champs.
    Résultat le formulaire est enregistré que les champs obligatoires soient renseignés ou non.
    Il y a une astuce pour corriger ce problème ?

    Merci.

    :bonjour:

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

    Bonjour.

    L’astuce c’est de faire apparaitre le champ de signature après que tous les champs obligatoires soient remplis.
    :Smiley01:

    #58763
    pipotofluto
    Membre

    :doute:
    tu pourrais développer stp ?
    merci
    :bonjour:

    #58764
    alex
    Participant

    Bonjour à tous,
    Voici ma manière de répondre à cette problématique qui diffère un peu de ce que propose Merlin:
    Pour une fois j’utilise la détection d’entrée du curseur dans le champ de signature (Action>Souris entrée)
    Je passe en revue tous les champs de saisie obligatoire du formulaire pour rechercher une éventuelle saisie manquante.Celle-ci trouvée, j’y place le curseur ce qui interdit la signature.
    Voir ma petite maquette jointe.

    NB:ce script peut être repris tel quel pour tout autre formulaire.

    #58765
    pipotofluto
    Membre

    Merci pour cette solution mais bizarrement ça ne fonctionne pas chez moi…
    :Euuuh:

    #58766
    Merlin
    Maître des clés

    Pour une fois j’utilise la détection d’entrée du curseur dans le champ de signature (Action>Souris entrée)

    Tu me l’avais déjà dit…
    J’aurais du y penser !
    :oh:

    #58767
    alex
    Participant

    Bonsoir,

    Qu’est-ce qui ne fonctionne pas chez vous ?
    1-Ma maquette ? Dans ce cas il faut s’assurer que le JavaScript du viewer (Acrobat PRO ou Standard ou Adobe Reader sur PC, Mac, Linux ou UNIX) est activé.
    2-Votre formulaire. Dans ce cas il faut nous le faire parvenir pour qu’on y jette un oeil.

    Par ailleurs, je ne fais plus de tests JavaScript sur les tablettes. J’attends la prochaine version d’Adobe Reader qui interprètera correctement toutes les méthodes du JavaScript et fonctionnera sur tous les supports…. Je suis très optimiste.

    #58768
    pipotofluto
    Membre

    Bonsoir,

    Non la maquette fonctionne.

    C’est sur mon formulaire que ça ne fonctionne pas. Je veux bien transmettre mon formulaire, mais pas sur le forum (c’est un document de travail)

    :bonjour:

    #58769
    Merlin
    Maître des clés

    Par ailleurs, je ne fais plus de tests JavaScript sur les tablettes. J’attends la prochaine version d’Adobe Reader qui interprètera correctement toutes les méthodes du JavaScript et fonctionnera sur tous les supports…

    Adobe Acrobat Reader DC est disponible depuis quelques jours : http://get.adobe.com/fr/reader/

    Je suis très optimiste.

    C’est rien de le dire…
    :mur:  :geek:

    #58770
    Merlin
    Maître des clés

    Merci pour cette solution mais bizarrement ça ne fonctionne pas chez moi…

    Non, ça n’a rien de bizarre.
    Il faut soit modifier les noms des champs obligatoires pour les faire correspondre à ceux que cherche le script, soit il faut faire l’inverse, c’est-à-dire modifier le script pour qu’il cherche les bons noms de champs.

    :Smiley15:

    #58771
    alex
    Participant

    Bonjour à tous,

    Voilà un script plus généraliste que le précédant et qui devrait convenir à votre formulaire. En effet, celui-ci embarque des listes déroulantes avec saisies obligatoires et une valeur par défaut vide.
    Ce script prend donc en compte les champs texte et combobox obligatoires.

    A propos de mon premier script:
    Celui-ci comporte une erreur lorsque l’on tente d’obtenir la propriété .required qui est inconsistante pour les boutons. Il faut donc exclure les boutons de l’analyse.

    #58772
    pipotofluto
    Membre

    Bonjour,
    Dans votre maquette, l’obligation de saisie ne fonctionne que pour la liste déroulante. Si je rempli la liste déroulante mais que je laisse les autres champs obligatoires vides, la signature fonctionne.
    :bonjour:

    #58773
    alex
    Participant

    Bonjour,
    Oops, j’ai été trop vite !
    Voici le script corrigé. Il vérifie que les champs obligatoires de type txt et combobox sont bien saisis. Reste à ajouter les cases à cocher obligatoires. Je reviendrai sur ce sujet à l’occasion.
    A vérifier. Ctrl-J pour afficher la console et voir la trace du déroulement du script.

    #58774
    pipotofluto
    Membre

    ça fonctionne nickel !!!  :bravo:
    merci
    :bonjour:

    #58775
    micka92
    Membre

    Bonsoir.

    Serait-il possible d’avoir le script concernant les cases à cocher obligatoires ?

    De plus, si ce n’est pas trop demandé, comment l’adapter sur un formulaire pour que si tous les champs obligatoires sont renseignés, cela affiche un champ signature ?

    Merci d’avance.

    #58776
    Merlin
    Maître des clés

    Serait-il possible d’avoir le script concernant les cases à cocher obligatoires ?

    Télécharge le document proposé par Alex dans son dernier message…
    :geek:

    #58777
    micka92
    Membre

    Télécharge le document proposé par Alex dans son dernier message…
    :geek:

    Heu… il n’a pas pu traité les cases à cocher dans son document et il le mentionne dans son message :

    Reste à ajouter les cases à cocher obligatoires. Je reviendrai sur ce sujet à l’occasion.

    #58778
    Merlin
    Maître des clés

    En effet…  :Ooops:

    Ci-joint le doc d’Alex revu et augmenté.
    Les cases-à-cocher sont prises en compte.
    :bonjour:

    #58779
    micka92
    Membre

    Merci Merlin.

    Toutefois, la fonction “Souris entrée” ne fonctionne pas sur PDF Expert et je crois qu’il en sera de même que la fonction “console.printIn”.

    Me concernant, il me faudrait “simplement”  :Ooops:  un script qui affiche le champ signature seulement si tous les champs obligatoires (texte, liste déroulante, cases à cocher et boutons radio) sont renseignés.

    #58780
    Merlin
    Maître des clés

    Toutefois, la fonction “Souris entrée” ne fonctionne pas sur PDF Expert

    Forcément, mais c’était prévisible.

    je crois qu’il en sera de même que la fonction “console.printIn”.

    L’affichage sur la Console ne sert qu’à avoir des retours pendant qu’on élabore un script, ça ne sert à rien d’autre.

    A ta place j’utiliserais un “faux” champ de signature chargé de vérifier les autres champs, et si les champs sont remplis correctement on masque le faux champ de signature pour le remplacer par le vrai.
    :idee:

    #58781
    micka92
    Membre

    A quoi servent les // en début de ligne dans les scripts ?

    Autant je pensais que c’était pour une indication quand il y a une rapide description à côté mais quand ils sont suivis de console.clear ou console.printIn, là je ne comprends plus…  :Ooops:

    #58782
    Merlin
    Maître des clés

    Le double slash en début de ligne sert à désactiver ladite ligne, et donc à placer des commentaires ou à laisser des instructions en attente (des instructions de débogage par exemple).

    En JavaScript quand on veut désactiver plusieurs lignes d’affilée on peut aussi utiliser slash-étoile (début) et étoile-slash (fin).
    Ce sont des conventions très répandues dans les langages de programmation.

    /*
    Ceci est un commentaire de plusieurs lignes, blablabla,
    blablabla, blablabla, blablabla, blablabla, blablabla,
    blablabla, blablabla, blablabla, blablabla, blablabla,
    blablabla, blablabla, blablabla, blablabla
    */

    :idee:

    #58783
    micka92
    Membre

    Merci Merlin pour tes explication toujours aussi claires et rapides !  :bravo:

    J’ai regardé un peu partout pour faire un script de calcul personnalisé mais il y a toujours une erreur (en gros il disparaît une fois que je clique sur OK).

    Pourtant je ne pense pas que cela soit si compliqué que cela à vouloir faire l’opération suivante : (champ1 * champ 2)/ 1000.

    #58784
    micka92
    Membre

    Le double slash en début de ligne sert à désactiver ladite ligne, et donc à placer des commentaires ou à laisser des instructions en attente (des instructions de débogage par exemple).

    En JavaScript quand on veut désactiver plusieurs lignes d’affilée on peut aussi utiliser slash-étoile (début) et étoile-slash (fin).
    Ce sont des conventions très répandues dans les langages de programmation.

    /*
    Ceci est un commentaire de plusieurs lignes, blablabla,
    blablabla, blablabla, blablabla, blablabla, blablabla,
    blablabla, blablabla, blablabla, blablabla, blablabla,
    blablabla, blablabla, blablabla, blablabla
    */

    :idee:

    Toutefois, dans le script que tu m’as envoyé, à chaque condition, il y a // ce qui me laisserait penser que ce n’est qu’un commentaire mais au vue de ce qu’il y a après (console.printIn…), j’avoue être perdu…

    #58785
    Merlin
    Maître des clés

    Tu peux supprimer toutes les lignes commençant par un double-slash, elles ne servent à rien.
    :Smiley03:

    #58786
    micka92
    Membre

    Effectivement le script me paraît plus clair comme cela  :Smiley03:

    Petit bémol : j’ai une liste déroulante qui est rendue obligatoire si une case à cocher est activée (script avec action Souris relâchée). Cela fonctionne parfaitement sauf que si je réinitialise mon formulaire à l’aide d’un bouton créé pour cela, cette liste déroulante garde la propriété obligatoire.

    #58787
    micka92
    Membre

    Je viens de m’apercevoir qu’à chaque fois que je réinitialise mon formulaire, il prend quelques kilo-octets. Je pensais qu’il reprendrait sa taille initiale… Y a-t-il une explication à cela ?

    #58788
    Merlin
    Maître des clés

    Ben moi je viens de m’apercevoir que je n’ai toujours pas écrit mon article sur “Enregistrer” vs “Enregistrer-sous”…
    :Smiley03:

    Donc en quelques mots :

    Enregistrer ajoute des instructions de modifications à la fin du fichier, donc celui-ci gonfle inexorablement à chaque enregistrement. D’autant que les éléments supprimés (images, textes, champs de formulaires, etc.) ne le sont pas vraiment.

    Enregistrer-sous recompile le fichier en éliminant tous les éléments superflus et toutes les modifications successives.

    Et ça vaut pour quasiment tous les formats de fichiers, pas que pour le PDF.

    :Smiley15:

    #58789
    micka92
    Membre

    En fait, j’utilise la fonction “Réinitialiser un formule” qui existe dans Acrobat Pro XI. Y a-t-il un rapport avec les fonctions “Enregistrer” et “Enregistrer sous” ?

    #58790
    Merlin
    Maître des clés

    Réinitialiser ou non le formulaire ne change rien à la problématique Enregister vs Enregistrer-sous.
    :idee:

    #58791
    micka92
    Membre

    Ma question portait sur la fonction “Réinitialiser le formulaire” qui fait augmenter la taille de mon fichier.  :Euuuh:

    #58792
    micka92
    Membre

    Je n’ai peut-être pas compris ta réponse…  :jerisjaune:

    #58793
    Merlin
    Maître des clés

    Chaque modification, y compris les suppressions, augmente le poids du fichier jusqu’à ce qu’on fasse un Enregistrer-sous.
    :idee:

    #58794
    micka92
    Membre

    Effectivement, je n’avais pas compris ta réponse. Désolé Merlin !  :Smiley00:

    #58795
    Merlin
    Maître des clés

    :Smiley15:

    #58796
    micka92
    Membre

    Pour le reste de mon formulaire, j’ai utilisé l’astuce de remplacer les boutons radios par des cases à cocher portant le même nom. Cependant, sur un groupement de 3 cases à cocher, j’ai un script qui s’exécute afin de rendre obligatoire une liste déroulante lorsque la 3ème est cochée.

    Actuellement, mes cases à cocher ont des noms différents. Si je souhaite les utiliser comme des boutons radios, comment dois-je transformer cette partie du script ? La 3ème case à cocher s’appellerait “case#2”.

    Code:
    if (event.target.isBoxChecked(0))
    #58797
    Merlin
    Maître des clés

    Si je souhaite les utiliser comme des boutons radios

    Il faut leur donner exactement le même nom et une valeur d’exportation différente (comme pour les boutons-radio).

    #58798
    micka92
    Membre

    Oui, ça je l’ai fait mais dans mon script, est-il possible de définir une case à cocher précise, case#2 dans mon exemple, pour rendre une liste déroulante obligatoire ?

    Quand chaque case à cocher avait son propre nom, j’utilisais if (event.target.isBoxChecked(0)).

    #58799
    micka92
    Membre

    En gros sur mes 3 cases, seule une, si elle est cochée, doit me rendre une liste déroulante obligatoire.

    #58800
    Merlin
    Maître des clés

    En gros sur mes 3 cases, seule une, si elle est cochée, doit me rendre une liste déroulante obligatoire.

    Quand chaque case à cocher avait son propre nom, j’utilisais if (event.target.isBoxChecked(0)).

    C’est le zéro qui fait tout : quand on crée des cases-à-cocher il arrive qu’elles doivent avoir le même nom, et les boutons-radio ont nécessairement le même nom.

    Donc pour les distinguer, Acrobat leur attribue un numéro d’ordre qui est visible dans le panneau des champs de l’éditeur de formulaires :
    nomduchamp#0
    nomduchamp#1
    nomduchamp#2
    Etc.

    Donc pour s’adresser à un bouton ou une case en particulier il faut spécifier son numéro entre les parenthèses.

    Truc à savoir : ledit numéro d’ordre est attribué au moment de la création des cases ou des boutons au fur et à mesure en partant de zéro et il n’y a pas moyen de le modifier.

    :idee:

    #58801
    micka92
    Membre

    Bonsoir.

    J’ai mis le chiffre correspondant à ma 3ème case à cocher (2) mais bizarrement, quand je la coche, les deux autres se cochent aussi. En gros, cocher n’importe quelle des 3 cases les coche toutes…  :Euuuh:

    #58802
    Merlin
    Maître des clés

    Il faut leur donner exactement le même nom et une valeur d’exportation différente (comme pour les boutons-radio).

    :geek:

    #58803
    micka92
    Membre

    Effectivement, je n’avais pas des valeurs d’exportation différentes, chose que j’avais bien faite sur une précédente version.

    Merci Merlin !

    #58804
    Future Shock
    Membre

    En effet…  :Ooops:

    Ci-joint le doc d’Alex revu et augmenté.
    Les cases-à-cocher sont prises en compte.
    :bonjour:

    Bonjour,

    Le script fonctionne très bien mais j’aimerais y ajouter un check sur les boutons radios.
    Comment faire ?

    #58805
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Dans le script il faut remplacer :

    if (ff.type==”checkbox”) {
    // blablabla
    }

    Par (ou ajouter une condition) :

    if (ff.type==”radiobutton“) {
    // blablabla
    }

    #58806
    Future Shock
    Membre

    Super !  :Smiley01: J’avais essayé avec Radio mais ce n’était pas le bon type.

    Merci beaucoup Merlin !  :bonjour:

    #58807
    Merlin
    Maître des clés
Affichage de 46 réponses de 1 à 46 (sur un total de 46)
  • Vous devez être connecté pour répondre à ce sujet.