abracadabraPDF › Forums › PDF – Général › Format monétaire avec espace, décimales SANS signe de $ et sans afficher 0.00
- Ce sujet est vide.
- CréateurSujet
- 12 juillet 2018 à 17:29 #45894
Sky
MembreBonjour j’ai des champs texte dont le signe de dollars est déjà présent sur le formulaire (donc pas besoin de s’afficher dans mon champ).
Je cherche un script qui s’affiche avec des espaces entre les centaines et les dizaines avec la virgule et sans le symbole dollar à la fin.
Par exemple comme ceci :
1 234 567,12
De plus, lorsque l’utilisateur n’a pas encore rempli le formulaire. Le champ ne doit rien afficher. Je ne veux pas voir de 0,00, comme ça si on doit imprimer avant d’avoir rempli à l’écran on peut le faire.Quelqu’un peut-il m’aider ?
Merci d’avance :soleil:
- CréateurSujet
- AuteurRéponses
- 13 juillet 2018 à 05:33 #64329
bebarth
Maître des clésbonjour,
Est-ce le résultat d’un calcul ou le nombre est-il rentré manuellement ?
@+
:bonjour:13 juillet 2018 à 08:38 #64330Merlin
Maître des clésBonjour.
Place ce script en « script de format personnalisé » :
Code:event.value = util.printf("%,2.2f",event.value).toString().replace(/./gim," ");
if (event.value == "0,00") {event.value = ""};
Attention, si le champ qui utilise ce script est utilisé pour d’autres calculs qui en découlent il faudra supprimer la deuxième ligne (qui supprime le zéro) sinon ça provoquerait des erreurs NaN (Not a Number).
13 juillet 2018 à 12:21 #64331Sky
Membre@bebarth : Non mon champs n’est pas un calcul, il est un nombre rentré manuellement.
@Merlin : C’est parfait ! Est-ce possible d’avoir le même javascript mais qu’il fonctionne autant si l’utilisateur inscrit le (point) ou la (virgule) pour tapper le nombre. Actuellement ce code fonctionne seulement si l’utilisateur utilise le (point) mais j’aimerais être certaine que les deux possibilités soit possible dans le meilleur des mondesPS: si vous avez ce code en version inversée aussi pour l’anglais par exemple! Pour avoir un résultat similaire mais inversé
Résultat : nombre avec un point peut importe si l’utilisateur tape une (virgule) ou un (point)
Merci beaucoup! C’est super apprécié.
13 juillet 2018 à 12:41 #64332Merlin
Maître des clésPour obtenir le point à la place de la virgule il faut remplacer :
event.value = util.printf(« %,2.2f »,event.value).toString().replace(/,/gim, » « );
par
event.value = util.printf(« %,0.2f »,event.value).toString().replace(/,/gim, » « );
Pour le reste je ne sais pas, je te renvoie à la doc… :joker:
13 juillet 2018 à 14:58 #64333Sky
MembreMerci
!! Cool ce petit imprime-écran ! Je ne sais pas comment créer de Javascript mais cela va m’être utile de comprendre ces quelques données ! Merci beaucoup.
13 juillet 2018 à 18:03 #64334bebarth
Maître des clés@Merlin : C’est parfait…
Je suis un peu étonné, car pour moi :
Code:event.value = util.printf(« %,2.2f »,event.value).toString().replace(/,/gim, » « );devrait donner : 1.234 56 puisqu’on remplace chaque virgule par un espace… il faudrait plutôt écrire :
Code:event.value = util.printf(« %,2.2f »,event.value).toString().replace(/./g, » « );…de plus, g devrait suffire pour global quand on remplace un signe !
Et dans l’autre exemple il faut remplacer les virgules par un espaceCode:.replace(/,/gim, » « )et le point par une virgule
Code:.replace(« . », », »)(il devrait n’y en avoir qu’un).
@+
:bonjour:17 juillet 2018 à 15:24 #64335Sky
MembreBonjour les gars
Le javascript de Merlin fonctionne très bien pour moi pour la règle typographique en français : 1 234 567,89 et ne pas afficher 0,00 quand rien n’est inscrit dans la case.
event.value = util.printf(« %,2.2f »,event.value).toString().replace(/./gim, » « );
if (event.value == « 0,00 ») {event.value = « »};par contre pour la règle typographique en anglais, aucun des codes ne fonctionne .. j’ai tenté plusieurs options mais sans résultats :
Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut..Quelqu’un pourrait m’aider à obtenir se format SVP. ?
17 juillet 2018 à 16:31 #64336Merlin
Maître des clésIl me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut.
Il faut remplacer la virgule par un point dans la 2e ligne :
if (event.value == « 0.00« ) {event.value = « »};
Ça devrait aussi fonctionner avec :
if (event.value == « 0« ) {event.value = « »};
17 juillet 2018 à 16:40 #64337Sky
MembreBonjour Merlin, la première partie non plus ne fonctionne pas pour le format 1 234 567.89
je suis un peu désespérée !17 juillet 2018 à 17:08 #64338bebarth
Maître des clésbonjour,
Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut..
J’avais cru comprendre que l’utilisateur tape un point (12345.78) ou une virgule (12345,78), le résultat devait être 12 345,78
C’est pas cela ???
@+
:bonjour:17 juillet 2018 à 17:46 #64339Sky
MembreC’est exacte bebarth,
il me faut maintenant l’inverse hihi : que l’utilisateur tape un point (12345.78) ou une virgule (12345,78), le résultat soit 12 345.78
J’ai tout essayé, mais je ne suis pas tombé sur ce résultat…
17 juillet 2018 à 19:02 #64340bebarth
Maître des clésVoilà !
Rien à voir avec le script de Merlin. C’est un champ texte avec un script de touches personnalisé pour n’admettre que les chiffres, le point et la virgule et un script en champ désactivé pour faire le job!
Tu as les 2 versions avec au final le point ou avec la virgule.
J’ai mis un espace fin au lieu d’un espace pour séparer les milliers.
Tu me dis si j’ai oublié quelque chose.
@+
:bonjour:17 juillet 2018 à 19:38 #64341Sky
Membrebebarth tu es mon sauveur !!
Il manque un seul détail et on y est.. j’ai essayer de recopier ce javascript : if (event.value == « 0,00 ») {event.value = « »};
il ne fonctionne plus avec ton javascript. Est-ce possible de faire en sorte que le champs reste vide et n’affiche pas : .00 ou ,00 par défaut lorsqu’il n’est pas rempli ?
Je sais, je sais ! Je suis exigeante hihi!18 juillet 2018 à 06:19 #64342bebarth
Maître des clésbonjour,
Je sais, je sais ! Je suis exigeante hihi!
Tu es une femme, non ???
Voilà, je pense que ce coup-ci tout y est !!!
@+
:bonjour:…et donc, en plein dans le mille !
:geek:18 juillet 2018 à 12:27 #64343Sky
MembreC’est de la magie ! Plus que parfait ! :bravo: :bonjour: Merci bebarth! :soleil:
20 juillet 2018 à 11:35 #64344Merlin
Maître des clés:bravo:
29 juillet 2018 à 19:06 #64345Lulularsu
ParticipantBonsoir,
Sur un formulaire d’inscription, je voudrais également que les champs à 0,00€, ne s’affichent pas. Mais à la différence de Sky, mes champs comportent des formules du type car ils vont récupérer un montant dans un autre champ :
Code:if (this.getField(« TarifGlace »).value!= »Off ») {
this.event.target.value=this.getField(« TarifGlace »).value;
} else {
this.event.target.value= »0″;
}J’ai essayé d’inclure le script :
Code:event.value = util.printf(« %,2.2f »,event.value).toString().replace(/./gim, » « );
if (event.value == « 0,00 ») {event.value = « »};mais cela ne fonctionne pas même en supprimant la 2e ligne.
Quelqu’un pourrait-il m’aider ?
Merci par avance30 juillet 2018 à 07:16 #64346Merlin
Maître des clésBonjour.
S’il y a d’autres calculs dépendants il ne faut pas supprimer la valeur zéro, il faut la masquer.
Par exemple en lui donnant la même couleur que le fond (blanc) de la page.À placer en script de validation ou bien en script de format personnalisé :
Code:if (event.value == 0) {
event.target.textColor = color.white ;
}
else {
event.target.textColor = color.black ;
}30 juillet 2018 à 12:24 #64347bebarth
Maître des clésbonjour,
Je t’ai envoyé une proposition en MP sur le fichier que tu m’as fourni.
@+
:bonjour:2 avril 2019 à 15:05 #64348Sky
MembreSuite à ma demande initiale,
J’ai maintenant besoin d’avoir le signe de $ qui s’affiche (à droite en français et à gauche en anglais).
FR: 9 999,00 $
AN: $9 999.00Je joins le PDF avec les 2 champs.
Merci beaucoup !! :Smiley01:2 avril 2019 à 21:08 #64349bebarth
Maître des clésbonsoir,
Pour le français :Code:…
this.event.target.value=nombre+ » $ »;
} else {
this.event.target.value= » »;
}Pour l’anglais :
Code:…
var chaine=this.event.target.valueAsString;
if (chaine.startsWith(« $ »)) var chaine=chaine.substring(1);
…
…
this.event.target.value= »$ »+nombre;
} else {
this.event.target.value= » »;
}@+
:bonjour:3 avril 2019 à 12:15 #64350Sky
MembreUn GROS merci !!
Vous êtes magique :bravo:3 avril 2019 à 12:35 #64351Merlin
Maître des clésTrop fort ce bebarth ! :bravo:
:merlin:
- AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.