allora ci ho lavorato un po', anche perché la cosa mi interessava...
Ho creato un paio di funzioni
Codice PHP:
function textFormatter(input){
var value = input.value;
var comma = value.indexOf(',');
if (comma >= 0) {
var str1, str2
str2 = value.substring(comma + 1, value.length);
if (comma == 0) {
str1 = "0";
}
else {
str1 = value.substring(0, comma);
}
if (str2.length > 2) {
var last = parseInt(str2.substring(2, 3));
if (last > 5)
str2 = "" + (parseInt(str2.substring(0, 2)) + 1);
else
str2 = "" + (parseInt(str2.substring(0, 2)));
}
else
if (str2.length < 2) {
for (i = 0; i < 2 - str2.length; i++) {
str2 += "0";
}
}
var v = str1.replace(/\./g, '');
input.value = insertPoints(v) + "," + str2;
}
else {
var v = value.replace(/\./g, '');
input.value = insertPoints(v) + ",00";
}
}
function insertPoints(value){
var len = value.length;
var counter = 0;
for (i = len - 1; i >= 0; i--) {
counter++;
if (counter == 3 && i != 0) {
var s1 = value.substring(0, i);
var s2 = value.substring(i, value.length);
value = s1 + "." + s2;
counter = 0;
}
}
return value;
}
poi ti è sufficiente ussare questa sintassi (che è DOM0 e quindi si può migliorare, ma funziona comunque)
Codice PHP:
<input type="text" onblur="textFormatter(this)"/>
L'ho messo sull'evento onBlur ovvero quando l'input perde il focus.