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: 25 años, 2 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(1 + dec);
    
nmrs = 1
    
}
else {
    
ctdd = 1; nmrs = 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 = dec; dd > 0; dd--)    
    {
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