Champs obligatoires et signature numérique  (Lu 8303 fois) Partager ce sujet Imprimer

1 B


micka92  14 août 2015 : 18:41

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 !

IP archivée


Merlin  13 août 2015 : 22:56

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

 :geek:

IP archivée


micka92  13 août 2015 : 22:17

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:

IP archivée


Merlin  05 août 2015 : 23:54

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:

IP archivée


micka92  05 août 2015 : 23:39

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

IP archivée


micka92  05 août 2015 : 23:38

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)).

IP archivée


Merlin  05 août 2015 : 23:15

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).

IP archivée


micka92  05 août 2015 : 19:02

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".


if (event.target.isBoxChecked(0))

IP archivée


Merlin  05 août 2015 : 15:33

 :Smiley15:

IP archivée


micka92  05 août 2015 : 15:02

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

IP archivée


Merlin  05 août 2015 : 14:37

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

IP archivée


micka92  05 août 2015 : 14:35

Je n'ai peut-être pas compris ta réponse...  :jerisjaune:

IP archivée


micka92  05 août 2015 : 14:29

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

IP archivée


Merlin  05 août 2015 : 13:58

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

IP archivée


micka92  05 août 2015 : 13:26

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" ?

IP archivée


Merlin  04 août 2015 : 13:46

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:

IP archivée


micka92  04 août 2015 : 12:48

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 ?

IP archivée


micka92  04 août 2015 : 12:43

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.

IP archivée


Merlin  04 août 2015 : 11:28

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

IP archivée


micka92  03 août 2015 : 22:21

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...

IP archivée


micka92  03 août 2015 : 22:12

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.

IP archivée


Merlin  03 août 2015 : 22:00

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:

IP archivée


micka92  03 août 2015 : 21:39

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:

IP archivée


Merlin  03 août 2015 : 10:02

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:

IP archivée


micka92  03 août 2015 : 08:20

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.

IP archivée


Merlin  01 août 2015 : 11:09

En effet…   :Ooops:

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


IP archivée


micka92  31 juillet 2015 : 21:56

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 :
Citer
Reste à ajouter les cases à cocher obligatoires. Je reviendrai sur ce sujet à l'occasion.

IP archivée


Merlin  29 juillet 2015 : 10:17

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:

IP archivée


micka92  29 juillet 2015 : 00:01

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.

IP archivée


pipotofluto  16 avril 2015 : 11:50

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

IP archivée


alex  16 avril 2015 : 09:00

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.



IP archivée


pipotofluto  16 avril 2015 : 08:35

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:

IP archivée


alex  14 avril 2015 : 11:31

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.



IP archivée


Merlin  14 avril 2015 : 10:27

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:

IP archivée


Merlin  14 avril 2015 : 01:14

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:

IP archivée


pipotofluto  14 avril 2015 : 00:06

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:

IP archivée


alex  13 avril 2015 : 21:24

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.

IP archivée


Merlin  13 avril 2015 : 19:35

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:

IP archivée


pipotofluto  13 avril 2015 : 15:22

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

IP archivée


alex  13 avril 2015 : 14:40

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.

IP archivée


pipotofluto  13 avril 2015 : 10:12

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

IP archivée


Merlin  11 avril 2015 : 10:58

Bonjour.

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

IP archivée


pipotofluto  10 avril 2015 : 15:28

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:

IP archivée