Função JavaScript para Formatação de Números sem casas decimais

4 respostas
V

Função no onchange

fica assim

1
10
100
1.000
10.000
100.000
1.000.000

e assim por diante.

É muito difícil achar no google um … e ainda mais que funcione.

Se puderem me ajudar, agradeço

4 Respostas

D

Já fez algo?
Acho que em prototype existe alguma coisa pronta…
De qualquer forma, pega o valor a ser mascarado e faz uma verificação de tamanho. A cada 3, coloca um ponto. Simples, não?

V

var copia = obj.value; var tam = obj.text.length; var temp = ''; for (i = tam - 1; i >= 0; i--) { temp = copia.charAt(i) + temp; if ((copia.substr(i).length % 3 == 0) && (i > 0)) { temp = '.' + temp; } } obj.value = temp;

Oi , obrigado

O código acima faz assim:

4.000.0000 , ele ignora o primeiro digito ( o ultimo quando se le )

vlw

D

Então, apenas mudei algumas coisas e foi…

function mascara(obj){
	    var copia = document.getElementById(obj).value;
		alert(copia);  
	    var tam = copia.length;  
	    var temp = '';  
	    for (i = (tam - 1); i >= 0; i--){  
	        temp = copia.charAt(i) + temp;  
	        if ((copia.substr(i).length % 3 == 0) && (i > 0)){  
	            temp = '.' + temp;  
	        }  
	    }  
	    document.getElementById(obj).value = temp;
	}

A chamada ficou

<input type="text" id="id" onkeyup="mascara('id');">
V

Obrigado pela ajuda no código cara.

Por incrivel que pareça, o que eu estava fazendo de errado era a chamada.
Estava usando onchange e nao onkeyup

Obrigado

Criado 27 de maio de 2011
Ultima resposta 27 de mai. de 2011
Respostas 4
Participantes 2