Donnez vie à vos documents numériques !
 

Changer couleur du champ obligatoire lorsque rempli

abracadabraPDF Forums PDF – Général Changer couleur du champ obligatoire lorsque rempli

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45354

    Bonjour,

    Je cherche à changer la couleur d’un champ obligatoire dans un formulaire afin qu’il ne soit plus rouge lorsqu’il a été rempli par l’utilisateur.
    Est-ce possible ?

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

    Bonjour et bienvenue.

    En fait c’est un truc d’illusionniste : la couleur rouge n’existe pas.  :geek:

    Quand on voit les champs obligatoires en rouge c’est parce-que la “Mise en surbrillance des champs de formulaire” est activée.
    Par défaut cela surligne les champs en bleu et ça ajoute un contour rouge aux champs obligatoires.

    On peut désactiver la mise en surbrillance soit en cliquant sur l’icône située à droite dans la barre violette de la mort qui tue, quand elle apparait (en haut du formulaire), soit en allant dans les Préférences : Formulaires : Mise en surbrillance (décocher).
    C’est également là qu’on peut changer les couleurs par défaut.

    Quand la mise en surbrillance est désactivée on voit l’aspect réel des champs (fond et contour).
    Par-contre on ne peut pas modifier le comportement de cette fonction, c’est à prendre tel quel ou à laisser.

    Les bonnes nouvelles :

    – pour éviter à l’utilisateur de devoir le faire et pour être certain de ce qu’il verra, on peut placer un script à l’ouverture du formulaire pour activer ou désactiver la mise en surbrillance.

    – on peut ajouter un petit script de validation pour obtenir le comportement que tu souhaites (après avoir désactivé la mise en surbrillance).

    J’ai cru lire quelque part que tu avais des compétences en copier-coller, ajouter un script n’en demande pas tellement plus.
    :Smiley15:

    #60315

    Merci, je suis bienheureuse de vous avoir trouvés  :extra:

    Donc, si je comprends bien, je triche :

    1. je désactive la surbrillance par un script à l’ouverture
    2. je donne réellement un contour rouge à mes champs obligatoires
    3. j’ajoute un script de validation qui fait changer ce contour en vert
    4. [/list]Mes compétences en copier-coller sont effectivement infinies  :Smiley03:

      Mais je vais en premier lieu vérifier avec l’utilisatrice finale que la surbrillance ne lui est pas indispensable, on ne sait jamais.
      Merci en tout cas et sans doute à bientôt

    #60316
    robinmaaax
    Membre

    Bonjour, je me permets relancer ce sujet car je rencontre le même problème. je voudrais que les champs obligatoires non remplis soient automatiquement visibles après clic sur le bouton d’envoi du formulaire. Auriez vous une solution ou script type dont je pourrais m’inspirer?
    Merci d’avance.

    #60317
    Merlin
    Maître des clés

    Avec ou sans la surbrillance ?

    #60318
    robinmaaax
    Membre

    Avec la surbrillance je crois.
    En fait je voudrais que seuls les champs obligatoires non remplis du formulaire soient en surbrillance (de couleur rouge par exemple) après clic sur le bouton d’envoi. Sachant que je désactive déjà la surbrillance dès l’ouverture du fichier avec :
    app.runtimeHighlight = false;
    :doute:

    #60319
    Merlin
    Maître des clés

    Avec la surbrillance je crois.…
    Sachant que je désactive déjà la surbrillance dès l’ouverture du fichier…

    :Euuuh:  :doute:
    Dans ce cas on va plutôt essayer de faire sans.  :geek:

    Ce forum ne permet pas de poster des résultats de recherche, tu devrais y faire une recherche (“RECHERCHER” ci-dessus) sur : “obligatoire champ rouge” et sur “validation champ obligatoire”, c’est un sujet qui a déjà été abordé plusieurs fois.
    N’hésites pas à revenir avec des questions si tu n’y arrives pas.

    #60320
    robinmaaax
    Membre

    :Euuuh: :doute:
    Dans ce cas on va plutôt essayer de faire sans.  :geek:

    Ce forum ne permet pas de poster des résultats de recherche, tu devrais y faire une recherche (“RECHERCHER” ci-dessus) sur : “obligatoire champ rouge” et sur “validation champ obligatoire”, c’est un sujet qui a déjà été abordé plusieurs fois.
    N’hésites pas à revenir avec des questions si tu n’y arrives pas.

    J’ai réussi à le faire en suivant les étapes sur le sujet suivant http://abracadabrapdf.net/forum/index.php/topic,1683.msg8350.html#msg8350
    Cependant je bute sur mon Champ “Téléphone”. Mon champ téléphone fonctionne déjà avec un masque arbitraire dans l’onglet format. Et je n’ai plus la possibilité d’y rajouter du code JavaScript. Du coup je suis face a un choix.
    C’est possible d’avoir un script de validation ou de calcul qui pourrait gérer la conformité des numéros de téléphone ( 09 99 99 99 99) ? Je ne sais vraiment pas comment coder ça. :oh:

    Merci d’avance.

    #60321
    bebarth
    Maître des clés

    bonjour,
    Il faut écrire une expression régulière.
    En voici une pour les numéros de téléphones (10 chiffres dont le premier est un zéro) :

    Code:
    if(!event.willCommit) {
        if(/^d{2}$/.test(event.value) && event.selStart==2 && event.change!=””) event.change=” “+event.change;
        else if(/^d{2} d{2}$/.test(event.value) && event.selStart==5) event.change=” “+event.change;
        else if(/^d{2} d{2} d{2}$/.test(event.value) && event.selStart==8) event.change=” “+event.change;
        else if(/^d{2} d{2} d{2} d{2}$/.test(event.value) && event.selStart==11) event.change=” “+event.change;
        var aTester=event.value.split(“”);
        aTester.splice(event.selStart, event.selEnd-event.selStart, event.change);
        var testeChaine=aTester.join(“”);
        var modeleRegEx=/^([0]d{0,1}( d{0,2}( d{0,2}( d{0,2})?( d{0,2})?)?)?)?$/;
        if (modeleRegEx.test(testeChaine) && event.change!=””) var derniereEntree=event.change;
        event.rc=modeleRegEx.test(testeChaine);
    } else {
        var modeleRegEx=/^(d{2} d{2} d{2} d{2} d{2})?$/;
        event.rc=(event.value==””) || modeleRegEx.test(event.value);
    }

    @+
    :bonjour:

    #60322
    Merlin
    Maître des clés

    Cependant je bute sur mon Champ “Téléphone”. Mon champ téléphone fonctionne déjà avec un masque arbitraire dans l’onglet format. Et je n’ai plus la possibilité d’y rajouter du code JavaScript

    Le script de vérification des champs obligatoire devrait se trouver dans le bouton “Valider” (ou Envoyer, etc.).
    Que veux tu mettre en Validation dans ce champ téléphone ?

    #60323
    robinmaaax
    Membre

    Le script de vérification des champs obligatoire devrait se trouver dans le bouton “Valider” (ou Envoyer, etc.).
    Que veux tu mettre en Validation dans ce champ téléphone ?

    Je crois que je me prenais vraiment la tête pour rien, grâce au tuto sur les déférents niveaux de javascript que tu m’as passé sur l’autre sujet, je me suis rendu compte que je pouvais bien mettre le script de validation des champs obligatoires dans la partir ” Script de Calcul personnalité” et maintenir mon masque arbitraire, et ca fonctionne biiien !

    Merci beaucoup :bonjour:

    #60324
    Merlin
    Maître des clés

    Je ne comprend toujours pas ce qu’un script de vérification des champs obligatoires vient faire dans un champ Téléphone, encore moins en script de calcul…
    :Euuuh:  :doute:

    #60325
    robinmaaax
    Membre

    Je ne comprend toujours pas ce qu’un script de vérification des champs obligatoires vient faire dans un champ Téléphone, encore moins en script de calcul…
    :Euuuh:  :doute:

    Hello, Je te joins un fichier contenant mon champ téléphone, mon script de gestion ainsi que des commentaires. N’hésite pas a me faire part de tes remarques s’il te plait.
    Merci.

    #60326
    bebarth
    Maître des clés

    bonjour,
    Dans ton fichier, le script de document ne sert pas à grand chose. Si tu définis par défaut le cadre et la couleur du champ il s’ouvrira tel quel.Tu peux placer ton script de calcul en script de validation, ça fonctionnera pareil.
    Comme son nom l’indique, le script de validation ne s’exécute que pour la validation du champ alors que le script de calcul s’exécute après chaque évènement ! Lorsque tu as un formulaire un peu compliqué il vaut mieux réduire au maximum le nombre de scripts de calcul afin de réduire les temps d’exécutions.
    @+
    :bonjour:

    #60327
    Merlin
    Maître des clés

    Le truc c’est que dans ton formulaire final il n’y aura pas qu’un seul champ à remplir (enfin je suppose), donc il faut prévoir plus large.

    Dans le ci-joint tout est dans le bouton vert.

    Code:
    function controlOblig() {
    var nCompteur = 0;
    for (var i=0; i var oFld = this.getField(this.getNthFieldName(i));

    // si champ texte ET obligatoire ET valeur = valeur par défaut
    if (oFld.type == “text” && oFld.required == true && oFld.value == oFld.defaultValue) {
    nCompteur = nCompteur + 1;
    oFld.strokeColor = color.red;
    }
    else {oFld.strokeColor = color.green;}
    }

    if (nCompteur != 0) {app.alert(“KO.nn” + nCompteur + ” champs obligatoires ne sont pas remplis.” );}
    else {app.alert(“OK”);}
    }
    controlOblig();

    #60328
    robinmaaax
    Membre

    Le truc c’est que dans ton formulaire final il n’y aura pas qu’un seul champ à remplir (enfin je suppose), donc il faut prévoir plus large.

    Dans le ci-joint tout est dans le bouton vert.

    Code:
    function controlOblig() {
      var nCompteur = 0;
        for (var i=0; i      var oFld = this.getField(this.getNthFieldName(i));
         
          // si champ texte ET obligatoire ET valeur = valeur par défaut
          if (oFld.type == “text” && oFld.required == true && oFld.value == oFld.defaultValue) {
            nCompteur = nCompteur + 1;
            oFld.strokeColor = color.red;
          }
          else {oFld.strokeColor = color.green;}
      }
       
      if (nCompteur != 0) {app.alert(“KO.nn” + nCompteur + ” champs obligatoires ne sont pas remplis.” );}
      else {app.alert(“OK”);}
    }
    controlOblig();

    Tu as tout bon  :bravo:  , c’est nettement plus simple maintenant. Merci beaucoup a vous!!!!

    #60329
    Merlin
    Maître des clés

    :bonjour:

    Regarde bien dans les champs, ils ont tous la même Action “Champ activé” (onFocus).

    #60330
    robinmaaax
    Membre

    :bonjour:

    Regarde bien dans les champs, ils ont tous la même Action “Champ activé” (onFocus).

    Oui en effet je viens tout juste de remarquer. Du coup ils deviennent vert dès que l’utilisateur les active. J’apprécie surtout le fait qu’ils passent en rouge si non-remplis après validation.

    Aussi, j’ai essayé de faire un peu pareil avec des cases a cocher. Ca semble marcher mais les champs repassent au rouge lorsque j’ouvre le fichier après l’avoir enregistré.
    Je te joins mon fichier si tu peux y jeter un œil.

    Merci d’avance.

    #60331
    Merlin
    Maître des clés

    Il y avait beaucoup trop de scripts dans ce document.
    Il faudrait que tu t’intéresses à la Console, elle donne des informations précieuses :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

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