abracadabraPDF › Forums › PDF – Général › Changer couleur du champ obligatoire lorsque rempli
- Ce sujet est vide.
-
CréateurSujet
-
2 février 2016 à 14:59 #45354
francoisenossent
MembreBonjour,
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 ? -
CréateurSujet
-
AuteurRéponses
-
3 février 2016 à 00:14 #60314
Merlin
Maître des clésBonjour 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:3 février 2016 à 15:03 #60315francoisenossent
MembreMerci, je suis bienheureuse de vous avoir trouvés :extra:
Donc, si je comprends bien, je triche :
- je désactive la surbrillance par un script à l’ouverture
- je donne réellement un contour rouge à mes champs obligatoires
- j’ajoute un script de validation qui fait changer ce contour en vert
[/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ôt22 mars 2021 à 09:08 #60316robinmaaax
MembreBonjour, 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.22 mars 2021 à 16:51 #60317Merlin
Maître des clésAvec ou sans la surbrillance ?
22 mars 2021 à 17:14 #60318robinmaaax
MembreAvec 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:23 mars 2021 à 10:35 #60319Merlin
Maître des clésAvec 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.25 mars 2021 à 08:54 #60320robinmaaax
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.25 mars 2021 à 11:41 #60321bebarth
Maître des clésbonjour,
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:25 mars 2021 à 17:46 #60322Merlin
Maître des clésCependant 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 ?26 mars 2021 à 07:57 #60323robinmaaax
MembreLe 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:
26 mars 2021 à 11:55 #60324Merlin
Maître des clésJe 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:26 mars 2021 à 16:02 #60325robinmaaax
MembreJe 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.27 mars 2021 à 07:53 #60326bebarth
Maître des clésbonjour,
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:27 mars 2021 à 10:04 #60327Merlin
Maître des clésLe 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; ivar 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();30 mars 2021 à 09:38 #60328robinmaaax
MembreLe 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; ivar 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!!!!
30 mars 2021 à 10:37 #60329Merlin
Maître des clés:bonjour:
Regarde bien dans les champs, ils ont tous la même Action “Champ activé” (onFocus).
30 mars 2021 à 15:20 #60330robinmaaax
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.
30 mars 2021 à 17:43 #60331Merlin
Maître des clésIl 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/ -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.