cs_sebalex
Messages postés150Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017
-
27 juin 2008 à 15:07
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
27 juin 2008 à 17:44
Bonjour à tous,
Je souhaite que lorsqu'une personne insère un montant (par exemple 100000) dans un champ, le format change automatiquement en cours de frappe et que le champ indique 100'000.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 27 juin 2008 à 15:19
Bonjour,
onkeyup sur le champ.
si taille > 3 ==> insertion du ' ( substring, indexOf... ) si cela n'est pas déjà fait.
faire attention que la modif du champ va peut-être entraîner le onkeyup !
<hr /> Cordialement Bul [mon Site] [M'écrire]
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 27 juin 2008 à 16:04
>>mécanisme fonctionne à merveille bien que j'aurais préféré que les nombres soient séparés par '.
regarde la variable b, qui est faite pour ajouter... un espace.
>>Le
seul problème c'est que j'utilise ce champ pour un calcul et lorsque je
mets 1 000 000,
>>il me prend la valeur 1 au lieu de 1'000'000
c'est bien normal ! tu dois à priori utiliser parseInt ou Number ou....
ça s'arrête au 1er caractère non numérique.
fais un ch'tiot coup de repalace(/ /,'') avant d'utiliser pour des calculs
cs_sebalex
Messages postés150Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017 27 juin 2008 à 16:10
Merci, mais comme tu as pu le deviner, je ne suis pas une lumière en java. Aussi, aurais-tu l'extrême gentillesse de me montrer le code à remplacer
tu m'as indiqué cela : zone.value=zone.value.replace(/([^0-9])/g,"");
Que dois-je modifier ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 27 juin 2008 à 16:33
pas un problème de lumière, un problème de lecture....
je parlais de la variable b var b="";
for ( var n=trv.length-3;n>0;n=n-3 )
{ zone.value=trv.substring(n,n+3)+b+zone.value;
b="ce que tu veux, ça devrait le faire ou pas loin"; }
ce que tu montres c'est l'effacement de tous les caractères non numériques.
<hr /> Cordialement Bul [mon Site] [M'écrire]
cs_sebalex
Messages postés150Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017 27 juin 2008 à 16:42
Je m'explique mal.
Le code que tu m'as donné au début est parfais. La seule chose c'est que le résultat de 1'000'000 (grâce à ton code) me donne 1 après validation du champ et je ne sais pas quoi mettre d'autre dans la variable b car j'ai déjà mis b="'"; ce qui me donne le résultat que je veux (1'000'000) dans le champ mais pas après validation.
cs_sebalex
Messages postés150Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017 27 juin 2008 à 16:47
Voici ce que j'ai fait de ton code et le résultat est 1'000'000 lorsque j'entre 1000000 dans le champ. Mais après validation, ça me prend 1 au lieu de 1000000.
var b="";
for ( var n=trv.length-3;n>0;n=n-3 )
{ zone.value=trv.substring(n,n+3)+b+zone.value;
b="'";
}
zone.value=trv.substring(0,3+n)+"'"+zone.value;
EnCours=false;
Si ça peut t'aider, va à l'adresse suivante et tu verras :
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 27 juin 2008 à 17:44
c'est normal ( déjà dit )
il y a des caractères qui ne conviennent pas pour faire du calcul ( espace ou ' ... )
avant d'utiliser : var pour_calcul=zone.value.replace(/([^0-9])/g,"");<hr /> Cordialement Bul [mon Site] [M'écrire]