abracadabraPDF › Forums › PDF – Général › Champs obligatoires et signature numérique
- Ce sujet est vide.
-
CréateurSujet
-
10 avril 2015 à 13:28 #45131pipotoflutoMembre
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:
-
CréateurSujet
-
AuteurRéponses
-
11 avril 2015 à 08:58 #58762MerlinMaî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:13 avril 2015 à 08:12 #58763pipotoflutoMembre:doute:
tu pourrais développer stp ?
merci
:bonjour:13 avril 2015 à 12:40 #58764alexParticipantBonjour à 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.
13 avril 2015 à 13:22 #58765pipotoflutoMembreMerci pour cette solution mais bizarrement ça ne fonctionne pas chez moi…
:Euuuh:13 avril 2015 à 17:35 #58766MerlinMaître des clésPour 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:13 avril 2015 à 19:24 #58767alexParticipantBonsoir,
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.
13 avril 2015 à 22:06 #58768pipotoflutoMembreBonsoir,
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:
13 avril 2015 à 23:14 #58769MerlinMaître des clésPar 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:14 avril 2015 à 08:27 #58770MerlinMaître des clésMerci 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:
14 avril 2015 à 09:31 #58771alexParticipantBonjour à 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.16 avril 2015 à 06:35 #58772pipotoflutoMembreBonjour,
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:16 avril 2015 à 07:00 #58773alexParticipantBonjour,
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.16 avril 2015 à 09:50 #58774pipotoflutoMembreça fonctionne nickel !!! :bravo:
merci
:bonjour:28 juillet 2015 à 22:01 #58775micka92MembreBonsoir.
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.
29 juillet 2015 à 08:17 #58776MerlinMaître des clésSerait-il possible d’avoir le script concernant les cases à cocher obligatoires ?
Télécharge le document proposé par Alex dans son dernier message…
:geek:31 juillet 2015 à 19:56 #58777micka92MembreTé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.
1 août 2015 à 09:09 #58778MerlinMaître des clésEn effet… :Ooops:
Ci-joint le doc d’Alex revu et augmenté.
Les cases-à-cocher sont prises en compte.
:bonjour:3 août 2015 à 06:20 #58779micka92MembreMerci 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.
3 août 2015 à 08:02 #58780MerlinMaître des clésToutefois, 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:3 août 2015 à 19:39 #58781micka92MembreA 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:
3 août 2015 à 20:00 #58782MerlinMaître des clésLe 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:
3 août 2015 à 20:12 #58783micka92MembreMerci 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.
3 août 2015 à 20:21 #58784micka92MembreLe 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…
4 août 2015 à 09:28 #58785MerlinMaître des clésTu peux supprimer toutes les lignes commençant par un double-slash, elles ne servent à rien.
:Smiley03:4 août 2015 à 10:43 #58786micka92MembreEffectivement 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.
4 août 2015 à 10:48 #58787micka92MembreJe 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 ?
4 août 2015 à 11:46 #58788MerlinMaître des clésBen 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:
5 août 2015 à 11:26 #58789micka92MembreEn 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” ?
5 août 2015 à 11:58 #58790MerlinMaître des clésRéinitialiser ou non le formulaire ne change rien à la problématique Enregister vs Enregistrer-sous.
:idee:5 août 2015 à 12:29 #58791micka92MembreMa question portait sur la fonction “Réinitialiser le formulaire” qui fait augmenter la taille de mon fichier. :Euuuh:
5 août 2015 à 12:35 #58792micka92MembreJe n’ai peut-être pas compris ta réponse… :jerisjaune:
5 août 2015 à 12:37 #58793MerlinMaître des clésChaque modification, y compris les suppressions, augmente le poids du fichier jusqu’à ce qu’on fasse un Enregistrer-sous.
:idee:5 août 2015 à 13:02 #58794micka92MembreEffectivement, je n’avais pas compris ta réponse. Désolé Merlin ! :Smiley00:
5 août 2015 à 13:33 #58795MerlinMaître des clés:Smiley15:
5 août 2015 à 17:02 #58796micka92MembrePour 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))5 août 2015 à 21:15 #58797MerlinMaître des clésSi 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).
5 août 2015 à 21:38 #58798micka92MembreOui, ç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)).
5 août 2015 à 21:39 #58799micka92MembreEn gros sur mes 3 cases, seule une, si elle est cochée, doit me rendre une liste déroulante obligatoire.
5 août 2015 à 21:54 #58800MerlinMaître des clésEn 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:
13 août 2015 à 20:17 #58801micka92MembreBonsoir.
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:
13 août 2015 à 20:56 #58802MerlinMaître des clésIl faut leur donner exactement le même nom et une valeur d’exportation différente (comme pour les boutons-radio).
:geek:
14 août 2015 à 16:41 #58803micka92MembreEffectivement, je n’avais pas des valeurs d’exportation différentes, chose que j’avais bien faite sur une précédente version.
Merci Merlin !
19 janvier 2021 à 12:14 #58804Future ShockMembreEn 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 ?19 janvier 2021 à 12:51 #58805MerlinMaître des clésBonjour et bienvenue
Dans le script il faut remplacer :
if (ff.type==”checkbox”) {
// blablabla
}Par (ou ajouter une condition) :
if (ff.type==”radiobutton“) {
// blablabla
}19 janvier 2021 à 13:16 #58806Future ShockMembreSuper ! :Smiley01: J’avais essayé avec Radio mais ce n’était pas le bon type.
Merci beaucoup Merlin ! :bonjour:
20 janvier 2021 à 10:32 #58807 -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.