Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adrianodsn

Máscara para número

Recommended Posts

Olá...

Quebrei a cabeça e não consegui desenvolver uma máscara decente para campo numérico no formato milhar "1.000.000".

Alguém pode me dar uma ajuda ou indicar onde encontro um script pronto?

Antecipadamente agradeço qualquer manifestação de ajuda a este pobre iniciante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

Quebrei a cabeça e não consegui desenvolver uma máscara decente para campo numérico no formato milhar "1.000.000".

Alguém pode me dar uma ajuda ou indicar onde encontro um script pronto?

Antecipadamente agradeço qualquer manifestação de ajuda a este pobre iniciante.

 

Adrianodsn,

 

 

Segue essa mascara.

 

 

<script language="javascript">

//-----------------------------------------------------

//Funcao: MascaraMoeda

//Sinopse: Mascara de preenchimento de moeda

//Parametro:

// objTextBox : Objeto (TextBox)

// SeparadorMilesimo : Caracter separador de milésimos

// SeparadorDecimal : Caracter separador de decimais

// e : Evento

//Retorno: Booleano

//Autor: Gabriel Fróes - www.codigofonte.com.br

//-----------------------------------------------------

function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){

var sep = 0;

var key = '';

var i = j = 0;

var len = len2 = 0;

var strCheck = '0123456789';

var aux = aux2 = '';

var whichCode = (window.Event) ? e.which : e.keyCode;

if (whichCode == 13) return true;

key = String.fromCharCode(whichCode); // Valor para o código da Chave

if (strCheck.indexOf(key) == -1) return false; // Chave inválida

len = objTextBox.value.length;

for(i = 0; i < len; i++)

if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;

aux = '';

for(; i < len; i++)

if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);

aux += key;

len = aux.length;

if (len == 0) objTextBox.value = '';

if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;

if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;

if (len > 2) {

aux2 = '';

for (j = 0, i = len - 3; i >= 0; i--) {

if (j == 3) {

aux2 += SeparadorMilesimo;

j = 0;

}

aux2 += aux.charAt(i);

j++;

}

objTextBox.value = '';

len2 = aux2.length;

for (i = len2 - 1; i >= 0; i--)

objTextBox.value += aux2.charAt(i);

objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);

}

return false;

}

</script>

Exemplo de utilização:

<form>

Valor R$: <input type="text" name="valor" onKeyPress="return(MascaraMoeda(this,'.',',',event))">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mmngea,

agradeço de coração a sua ajuda, mas preciso de uma máscara sem as casas decimais.

o script q enviou cria a máscara 1.000,00 quando preciso no formato 1.000

grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.