Ver Mensaje Individual
  #46 (permalink)  
Antiguo 08/12/2002, 18:31
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
46.- Entrada de datos númericos con formato

P: ¿Como puedo presentar un número con formato de separador de decimales y de miles a medida que va siendo transcrito en un campo de texto?

Créditos: Este script me llegó en una pregunta ya desaparecida. Si alguien tiene información del autor, por favor hágamelo saber para colocar los créditos correspondientes.

R: [ver ejemplo]
Código PHP:
<html>
 <
head>
  <
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>
 </head>
 <body>
  <form>
   Tipee un número: 
   <input type="text" name="test" length="15" onKeyPress="return(currencyFormat(this,',','.',event))">
  </form>
 </body>
</html> 

Última edición por Kaopectate; 24/12/2002 a las 09:55