Donnez vie à vos documents numériques !
 

Required _ Champs Obligatoire_Syntax Error

abracadabraPDF Forums PDF – Général Required _ Champs Obligatoire_Syntax Error

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46601
    MALDF
    Membre

    Bonjour à tous,

    Avant de poster ce message , j’ai fait des recherches sur le forum qui traite les problème de champs obligatoire, et je vous avoue que ce n’est pas évident.
    Pour faire simple, je voulais rendre un seul champs Obligatoire sur mon PDF, donc j’ai utilisé la propriété du champs et j’ai coché simple “Obligatoire” .. oui cette option ca marche juste avec le submit form. d’accord.

    Du coup après recherche j’ai trouvé le code ci-dessous posté par Merlin :

    Code:
    if (event.target.value != “”) {
    this getField(“nomdemonchamp”).required = true ;
    }
    else {
    this getField(“nomdemonchamp”).required = false;
    }

    Que je compte de l’intégrer sur un bouton impression, onglet : Action > souris entrée, j’appuie sur Ok .. un message syntax error s’affiche : à la ligne 3

    et le code :

    Code:
    this.print();

    sur l’onglet Action > souris relâchée.

    Je ne sais même pas si ma démarche est bonne : mais je pense que si un script peut refuser la valeur zéro, ou un vide d’un champs et affiche une alerte avant de passer à la case suivante.

    Merci pour votre aide.
    Bien à vous.

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

    Bonjour

    Ce script vérifie la valeur du champ cliqué avant d’agir en conséquence… Mais un champ de type bouton ne peut pas avoir de valeur, d’où le message d’erreur.

    Le vrai problème est en amont : si aucun logiciel (donc pas seulement Acrobat) ne bloque l’impression par rapport aux champs obligatoires (contrairement à la fonction Submit ou à l’envoi par email) ce n’est pas un hasard.

    1. Rien ne peut empêcher l’utilisateur d’imprimer normalement via l’interface de son logiciel (menu ou raccourci-clavier), donc sans utiliser le bouton “Imprimer”.

    2. Un utilisateur peut avoir plein de bonnes raisons pour vouloir imprimer un formulaire tel quel et finir de le compléter avec un stylo, il serait donc malvenu de vouloir l’en empêcher.
    En général lors de l’impression on utilise un script qui vérifie si les champs obligatoires sont tous remplis, et s’il ne le sont pas on affiche un avertissement à l’utilisateur mais sans le bloquer pour autant.

    Et comme il faut que ça fonctionne même si l’utilisateur n’utilise pas le bouton qu’on lui a préparé on doit placer le script de vérification non pas dans le bouton mais en script d’évènement “Quand le document sera imprimé”.
    Ce qui permet à l’utilisateur de pouvoir éventuellement ensuite annuler l’impression dans la boite de dialogue d’impression qui suit immédiatement l’alerte.
    Voir (paragraphe 4) : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    3. On peut donc aussi plus simplement se contenter d’afficher systématiquement une alerte lors de l’impression, donc sans vérification préalable des champs obligatoires, par exemple en plaçant ce script en script d’évènement “Quand le document sera imprimé” :

    app.alert(“Merci de vérifier que tous les champs obligatoires soient correctement remplis avant l’envoi.nnAucun formulaire incomplet ne sera pris en compte.“);

    :Smiley15:

    #69230
    MALDF
    Membre

    Bonjour Merlin,
    Merci pour ta réponse.
    En effet, je veux pas désactiver l’impression, mais juste envoyer un message d’alerte concernant mon champ qui sera obligatoire à la saisie ( un nombre supérieure ou égale 1 ).
    Du coup J’ai pensé à mettre une validation avec une fourchette de 1 à 10000000.
    Mais le problème c’est que : si l’utilisateur ne marque rien , il peut continuer à remplir les autres cases .. et ça va fausser tous les autres cases .

    Sinon ce code, je le place ou ?

    Code:
    app.alert(“Merci de vérifier que tous les champs obligatoires soient correctement remplis avant l’envoi.nnAucun formulaire incomplet ne sera pris en compte.”)

    car ton code me donne une idée : de le faire apparaitre un message si l’utilisateur ne rempli pas le champ concerné si c’est possible.

    Merci d’avance.

    #69231
    Merlin
    Maître des clés

    Du coup J’ai pensé à mettre une validation avec une fourchette de 1 à 10000000

    Il suffit de laisser la valeur maximum vide pour ne pas imposer de limite supérieure.

    Mais le problème c’est que : si l’utilisateur ne marque rien , il peut continuer à remplir les autres cases .. et ça va fausser tous les autres cases .

    Auquel cas le meilleur moyen serait peut être de faire apparaitre les autres cases quand l’utilisateur clique sur celle qui est obligatoire…

    Sinon ce code, je le place ou ?

    Je me cite : “en plaçant ce script en script d’évènement “Quand le document sera imprimé”
    Voir (paragraphe 4) : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    :Smiley03:

    #69232
    MALDF
    Membre

    Justement merlin,
    je ne vois pas ou placer les script évènement ? est sur :

    • Le bouton ou
    • mon champ en question ( en action ou validation ? )
    • [/list]

    #69233
    MALDF
    Membre

    C’est j’ai trouvé :
    Sur le champs en question : Propriété > Action > Déclencheur > Champ activé > exécuter un script.

    Code:

    app.alert(“Merci de vérifier que tous les champs obligatoires soient correctement remplis avant l’envoi.nnVeuillez reporter le nombre Total des élèves de votre établissement.”);

    #69234
    MALDF
    Membre

    Ce script vérifie la valeur du champ cliqué avant d’agir en conséquence… Mais un champ de type bouton ne peut pas avoir de valeur, d’où le message d’erreur.

    Justement ce code je l’ai mis en Action en exécutant un script d’un champ et pas un Bouton.

    if (event.target.value != “”) {
    this getField(“Champ1”).required = true;
    }
    else {
    this getField(“Champ1”).required = false;
    }

    #69235
    bebarth
    Maître des clés

    app.alert(“Merci de vérifier que tous les champs obligatoires soient correctement remplis avant l’envoi…

    Toujours l’éternelle ambiguïté : indicatif ou subjonctif ???
    @+
    :bonjour:

    #69236
    Merlin
    Maître des clés

    Toujours l’éternelle ambiguïté : indicatif ou subjonctif ???

    J’avoue que j’ai hésité…
    :doute:

    #69237
    Merlin
    Maître des clés

    C’est j’ai trouvé : Sur le champs en question : Propriété > Action > Déclencheur > Champ activé > exécuter un script.

    J’ai expliqué ci-dessus pourquoi il ne faut pas le mettre dans le champ !  :Smiley11:  :oh:
    Il faut le placer en script d’évènement, il faut cliquer sur le lien que j’ai donné ci-dessus et aller au paragraphe 4 pour trouver les explications.

    #69238
    MALDF
    Membre

    Merci Merlin,
    j’avais du mal à te comprendre, mais j’ai pas compris le paragraphe 4, car je ne trouve pas ce que je cherche.
    mais bon pour tout le monde Merlin voulait dire ca : ( voir pièce jointe )  :jerisjaune:
    Pour ajouter un script évènement :

    #69239
    Merlin
    Maître des clés

    :extra:

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