Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/08/2007, 09:42
Avatar de messer
messer
 
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 20 años, 6 meses
Puntos: 5
Re: Anteponer String para formato de Moneda

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(fldmilSepdecSepe) {
    var 
sep 0;
    var 
key '';
    var 
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(
0leni++)
     if ((
fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
    
aux '';
    for(; 
leni++)
     if (
strCheck.indexOf(fld.value.charAt(i))!=-1aux += fld.value.charAt(i);
    
aux += key;
    
len aux.length;
    if (
len == 0fld.value '';
    if (
len == 1fld.value '0'decSep '0' aux;
    if (
len == 2fld.value '0'decSep aux;
    if (
len 2) {
     
aux2 '';
     for (
0len 3>= 0i--) {
      if (
== 3) {
       
aux2 += milSep;
       
0;
      }
      
aux2 += aux.charAt(i);
      
j++;
     }
     
fld.value '';
     
len2 aux2.length;
     for (
len2 1>= 0i--)
      
fld.value += aux2.charAt(i);
     
fld.value += decSep aux.substr(len 2len);
    }
    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 == || 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!!!
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>