Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/01/2005, 14:53
Avatar de tunait
tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Bueno, a ver si lo adaptamos....

El script queda de la siguiente manera:

Código PHP:
<script type="text/javascript">
/*****************************************************************************
Código para colocar los indicadores de miles  y decimales mientras se escribe
Script creado por Tunait!
Si quieres usar este script en tu sitio eres libre de hacerlo con la condición de que permanezcan intactas estas líneas, osea, los créditos.

http://javascript.tunait.com
[email protected]  27/Julio/03
******************************************************************************/
function puntitos(donde,caracter,campo)
{
var 
decimales false
campo 
= eval("donde.form." campo)
    
dec = new Number(campo.value)
    if (
dec != 0)
        {
decimales true}




pat = /[*,+,(,),?,,$,[,],^]/
valor donde.value
largo 
valor.length
crtr 
true
if(isNaN(caracter) || pat.test(caracter) == true)
    {
    if (
pat.test(caracter)==true
        {
caracter "\\" caracter}
    
carcter = new RegExp(caracter,"g")
    
valor valor.replace(carcter,"")
    
donde.value valor
    crtr 
false
    
}
else
    {
    var 
nums = new Array()
    
cont 0
    
for(m=0;m<largo;m++)
        {
        if(
valor.charAt(m) == "." || valor.charAt(m) == " " || valor.charAt(m) == ",")
            {continue;}
        else{
            
nums[cont] = valor.charAt(m)
            
cont++
            }
        
        }
    }

if(
decimales == true) {
    
ctdd = eval(dec);
    
nmrs 1
    
}
else {
    
ctdd 1nmrs 3
    
}
var 
cad1="",cad2="",cad3="",tres=0
if(largo nmrs && crtr == true)
    {
    for (
k=nums.length-ctdd;k>=0;k--){
        
cad1 nums[k]
        
cad2 cad1 cad2
        tres
++
        if((
tres%3) == 0){
            if(
k!=0){
                
cad2 "." cad2
                
}
            }
        }
        
    for (
dd decdd 0dd--)    
    {
cad3 += nums[nums.length-dd] }
    if(
decimales == true)
    {
cad2 += "," cad3}
     
donde.value cad2
    
}
donde.focus()
}    
</script> 
Dentro de tu form inserta un campo oculto y llámalo, por ejemplo, decimales y asígnale por valor la cantidad de decimales que quieras

<input type="hidden" name="decimales" value="2" />

Y a los campos del form que quieras formatear les pides...

<input type="text" name="textfield" onkeyup="puntitos(this,this.value.charAt(this.valu e.length-1),'decimales')">

Si le das otro nombre al campo oculto debes cambiar lo que te puse en azul por el nombre que le asignes al campo hidden.

Puedes usarlo con tantos campos como quieras.

Dime si lograste instalarlo