Besoin d'aide sur ce script [JavaScript] - HTML/CSS - Programmation
Marsh Posté le 19-07-2012 à 22:01:58
hello
pourquoi pas directement en PHP avec http://fr2.php.net/manual/fr/funct [...] format.php ?
Marsh Posté le 20-07-2012 à 21:31:34
par ce que il faut que l'utilisateur voit ses milliers séparés pendant la saisie.
Je suis en train d'essayer de faire un autre script.
Je vous le passe. Le problème c'est de récupérer la position de son curseur après une insertion de chiffre n'importe où dans la chaîne. Je n'arrive pas non plus à gérer les backspace et suppr.
Le voilà, si quelqu'un a la bonté de m'aider.
Code :
|
Marsh Posté le 20-07-2012 à 23:07:28
Il y a plus simple comme code pour formatter un nombre
SUr jsfiddle, j'ai un exemple un peu plus complet, http://jsfiddle.net/FpFHG/7/
Mais voici juste le code qui permet de formatter 1234567 en 1 234 567
Code :
|
Marsh Posté le 21-07-2012 à 00:11:42
salut
merci pour ton code.
Et ça met le curseur où il faut ?
++
Marsh Posté le 21-07-2012 à 08:22:43
non si tu regarde bien, je n'ai quasiment aucune notion du curseur via ce code.
Il faut juste rajouter un algo qui gère le changement de longeur de la chaine entre la nouvelle chaine et la précédente chaine et qu'on regarde si on rajoute ou enleve un espace.
L'autre problème et de connaitre à quel endroit le rajout s'est opéré.
Mon code ici te formate le nombre d'une manière plus simple que les 40 lignes de codes que tu avais avant.
Marsh Posté le 21-07-2012 à 14:59:05
C'est bon, j'ai réussi à faire ce que je voulais.
J'y ai pas encore intégré ton script Gatsu, mais ça marche.
Le voilà pour ceux qui veulent
Notez que j'ai aussi une fonction qui remplace les virgules par des points avant traîtement du script.
Code :
|
Marsh Posté le 18-07-2012 à 18:32:33
Bonjour à tous
Voilà, je suis en train de faire un site php qui fait quelques calculs. J'ai besoin, pour des questions de lisibilité, d'ajouter des séparateurs de milliers.
J'ai donc trouvé un script sur le net (eh oui, un bon programmeur est un flemmard !) qui fait ça.
Tout bon, vraiment bien ce script ! Sauf que j'y comprends rien, javascipt n'étant absolument pas mon domaine et n'ayant pas vraiment le temps de m'y mettre pour approfondir les choses.
Mais à la limite, c'est pas grave, j'ai pas besoin de le comprendre vu qu'il marche !
Oui mais : Ce script ne gère pas les effacements (backspace et suppr). c'est à dire que si je veux modifier mon texte, faut que je ressaisisse l'URL.
voilà, donc si un As du JS aurait le temps de me trouver la solution, ça serait tout à son honneur.
Voici le code :
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true; // Enter
key = String.fromCharCode(whichCode); // Get key value from key code
if (strCheck.indexOf(key) == -1) return false; // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}
// End -->
</script>
</head>
<BODY>
<form>
Enter Value:
<input type=text name=test length=15 onKeyPress="return(currencyFormat(this,' ','.',event))">
</form>
</BODY>
</HTML>
Bon, bien entendu mon objectif est plus compliqué que ça, mais c'est pour simplifier.
Merci à tous.