Estuve revisandon las FAQs y encontre un codigo que lo hace, pero no permite editar las cantidades. Te comento que ya habia visto ese link desde otro post, lo guarde para analizarlo, pero cuando lo vi, pues mi sorpresa!!
no entendi nada!! no se como se llaman los eventos, la funcion se ejecuta con una etiqueta alt="" o algo parecido, y los archivos .JS o estan encriptados o es algo demasiado profundo para mi (que no soy muy Ducho con el Javascript), si has probado descargarlo y has visto el codigo sabras de lo que hablo, si no lo has hecho, pues hazlo!! y a ver si puedes comentar algo al respecto..
A continuacion pongo el codigo:
Código PHP:
<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;
}
</script>
Ese es el codigo que consegui en las FAQ, este no permite editar montos como dije anteriormente, sin embargo, hacemos que reconozca la tecla backspace o escape y reseteamos el campo, sera posible introducir el valor nuevamente;
Código PHP:
if(whichCode == 0 || whichCode == 8){fld.value = fld.defaultValue;}
No es mayor aporte ni la mejor solucion pero es una manera de darle la vuelta..
Seguire intentando y comento.. Saludos!!!