Champs obligatoires avant l'envoi d'email autre que texte.  (Lu 203 fois) Partager ce sujet Imprimer

1 B


Minautore  01 mars 2021 : 00:00

Bonjour,

Je profite de ce post pour remercier la communauté de lire et répondre aux demandes multiples, c'est vraiment sympa de la part de tout les intervenants.

J'ai cherché, peut être mal, la réponse à ma question.

Comment inclure le contrôle des champs autres que texte avant l'envoi du formulaire?

J'utilise le script suivant: (merci abracadabrapdf
:joker: )






var lesChamps=new Array();
var leTexte="";
for (var i=0; i<this.numFields; i++) {
   var nomChamp=this.getNthFieldName(i);
   var f=this.getField(nomChamp);
   try {
      if (f.required="true" && f.value=="") lesChamps.push(nomChamp);
   } catch(e) {}
}
for (var i=0; i<lesChamps.length; i++) var leTexte=leTexte+"\n • "+lesChamps;
if (lesChamps.length) app.alert("Les champs suivants doivent être renseignés avant d'envoyer le formulaire :"+leTexte, 2);


Comment inclure dans cette check liste les menus déroulants et les checkbox du formulaire ?
Cela ne fonctionne que pour les champs texte, je crois que la réponse est dans cette ligne :

var lesChamps=new Array();

J'ai rajouté
(nomCheckBox) mais sans succès par exemple..... :Smiley02:

IP archivée


bebarth  01 mars 2021 : 09:18

bonjour,
...je crois que la réponse est dans cette ligne :
var lesChamps=new Array();

Non, cette ligne déclare une nouvelle table vide !

C'est ici que ça ce joue :
if (f.required="true" && f.value=="") lesChamps.push(nomChamp);Cette ligne vérifie si le champ est obligatoire ET que sa valeur est "" (vide). Ce qui peut être le cas que pour les champs "Texte".
Pour les boutons radio et les cases à cocher, la valeur pour une case non cochée est "Off".
Pour les menus déroulants et zones de liste on va dire qu'il y a toujours une valeur. La condition dépendra donc de ce que tu veux vérifier...
On peut ne pas tenir compte du type de champ, mais il peut y avoir des mauvais retours (si on écrit "Off" comme valeur d'un champ texte par exemple)  :
if (f.required="true" && (f.value=="" || f.value=="Off" || f.value!="Valeur recherchée de la liste")) lesChamps.push(nomChamp);ou séparer les conditions en fonction du type de champ pour être plus précis :
if (f.required=="true" && ((f.type=="text" && f.value=="") || ((f.type=="checkbox" || f.type=="radiobutton") && f.value=="Off") || ((f.type=="combobox" || f.type=="listbox") && f.value!="Valeur recherchée de la liste"))) lesChamps.push(nomChamp);
Ça fait peut-être peur comme ça, mais ce n'est pas trop compliqué à comprendre !
@+
 :bonjour:

IP archivée


Merlin  01 mars 2021 : 09:52

Bonjour

Citer
Comment inclure le contrôle des champs autres que texte avant l'envoi du formulaire?
La première chose qu'il faudrait savoir c'est le type de ces champs "autres", car leur vérification en dépend.

IP archivée


Minautore  01 mars 2021 : 10:24

Bonjour
La première chose qu'il faudrait savoir c'est le type de ces champs "autres", car leur vérification en dépend.


Effectivement, ça aiderait.

Il s'agit de boutons radios, de champs date, de menus déroulants et de cases à cocher.

Dans un cas de cases à cocher, il s'agit de cocher l'une ou l'autre (monsieur ou madame), ce qui complique un peu la tâche. Je vais plutôt passer par des boutons radios pour ce cas précis, même si on me dit "ça fait moins joli". :jerisjaune:

Le plus simple serait peut être de passer par un bouton d'envoi de formulaire avec l'option champs obligatoire. :Euuuh:



J'ai un autre soucis avec les menus déroulants, je n'arrive pas à laisser un champ vide par défaut (donc non renseigné). Je sais que c'est possible de le faire mais je tourne en rond sans y arriver.



IP archivée


Minautore  01 mars 2021 : 10:31

@bebarth

merci pour  le temps que tu as pris pour me répondre.

Je pense passer par un bouton envoi de formulaire et les champs obligatoire, comme je l'ai dis au dessus. Cela serait plus simple.
Si je dois adapter un script pour chaque formulaire, cela risque de me prendre beaucoup plus de temps que cette solution je pense.

IP archivée


Minautore  01 mars 2021 : 10:44






J'ai un autre soucis avec les menus déroulants, je n'arrive pas à laisser un champ vide par défaut (donc non renseigné). Je sais que c'est possible de le faire mais je tourne en rond sans y arriver.

J ai trouvé une solution alternative, il suffit d'effacer le champ par défaut et la vérification fonctionne.

IP archivée


Merlin  02 mars 2021 : 11:11

Citer
Je vais plutôt passer par des boutons radios pour ce cas précis, même si on me dit "ça fait moins joli".
Un bouton-radio peuvent avoir le même aspect qu'une case à cocher, et vice-versa.


Citer
avec les menus déroulants, je n'arrive pas à laisser un champ vide par défaut
On ne peut pas, il faut saisir une espace.


Citer
J ai trouvé une solution alternative, il suffit d'effacer le champ par défaut et la vérification fonctionne.
Bonjour le bricolage !  :geek:

Pour vérifier une liste déroulante il faut soit :
- vérifier sa valeur (celle de l'item par défaut),
- vérifier sa position (celle de l'item par défaut est zéro).

IP archivée


Minautore  02 mars 2021 : 13:47

Merci pour l'aspect des boutons radio, je n'y avais même pas pensé . :mur:

Je préfère la solution bricolage pour l'instant. :jerisjaune:

J'ai pas spécialement la motivation pour coder une vérif pour chacun de mes formulaires.

Et si Acrobat me propose une vérif simple à mettre en place avec ce bouton d'envoi, je prends pour le moment.

D'autant que ceux qui sont remplissent les formulaires sont sensés être des pro du contrôle. :siffle:

IP archivée


bebarth  02 mars 2021 : 14:59

J'hésite à commenter !!!
@+
 :bonjour:

IP archivée


Merlin  02 mars 2021 : 16:00

Et si Acrobat me propose une vérif simple à mettre en place avec ce bouton d'envoi, je prends pour le moment.

Le plus simple serait peut être de passer par un bouton d'envoi de formulaire avec l'option champs obligatoire.

Il n'y a pas plus simple en effet.

IP archivée