Como implementar entada de Valores Monetários com Virgula

30/03/2008

1

Pessoal

Alguém sabe como faço para implementar uma mascara ou uma função para entrada de valores decimais em reais nos campos Edit?

já consegui fazer isto via PHP após a digitação do campo através da função Number_format, agora preciso fazer isto em tempo de digitação dos valores, de modo que a medida que eu for digitando os valores, a virgula e o ponto como separadores de milhares vá aparecendo.


Responder

Posts

18/04/2008

Webmoura

Boa Tarde

tente este codigo, eu fiz e esta funcionando bem em minhas aplicacoes vc deve colocar no evento Javascript JSKeyDown do edit

document.onkeydown = Moedacode

function Moedacode(e)
{
var keycode;
var sep = 0;
var key =´´;
var i = j = 0;
var len = len2 = 0;
var strCheck = ´0123456789´;
var aux = aux2 = aux3 = ´´;
var SeparadorMilesimo = ´´;
var SeparadorDecimal=´´;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
switch(keycode)
{
case 96:
key=´0´;
break;
case 97:
key=´1´;
break;
case 98:
key=´2´;
break;
case 99:
key=´3´;
break;
case 100:
key=´4´;
break;
case 101:
key=´5´;
break;
case 102:
key=´6´;
break;
case 103:
key=´7´;
break;
case 104:
key=´8´;
break;
case 105:
key=´9´;
break;
case 106:
key=´*´;
break;
case 107:
key=´+´;
break;
case 109:
key=´-´;
break;
case 110:
key=´.´;
break;
case 111:
key=´/´;
break;
default:
key = String.fromCharCode(keycode); // Valor para o código da Chave
}
// 13=enter, 8=backspace as demais retornam 0(zero)
// keycode==0 faz com que seja possivel usar todas as teclas como del, setas, etc
if ((keycode == 13) || (keycode == 0) || (keycode == 8))
{
return (true);
}
else
{
if (strCheck.indexOf(key) == -1)
{
// Chave inválida
//key=´´;
document.getElementById(´e_descricao´).value+=key;
}
else
{
document.getElementById(´e_descricao´).value+=key;
len = document.getElementById(´e_descricao´).value.length;
aux=´´;
for(i = 0; i < len; i++) //>
{
aux += document.getElementById(´e_descricao´).value.charAt(i);
}
if (len == 1)
{
document.getElementById(´e_descricao´).value = ´0´+ SeparadorDecimal + ´0´ + aux;
}
else
{
if (len > 2)
{
aux2 = ´´;
for (i = 0; i < len; i++)//>
{
if (aux.charAt(i)==SeparadorDecimal)
{
i++;
aux2 += aux.charAt(i);
aux2 += SeparadorDecimal;
}
else
{
aux2 += aux.charAt(i);
}
}
//executar o teste de char0 2x devido aos 2 zeros acrescentados acima
aux3=aux2; //igualar para quando não for 0 no char0
if ((aux2.charAt(0)==´0´) && (aux2.charAt(1)!=SeparadorDecimal))
{
aux3 = aux2.substr(1, len);
}
aux2=aux3;//iguala e executa de novo para eliminar zeros a esquerda
if ((aux2.charAt(0)==´0´) && (aux2.charAt(1)!=SeparadorDecimal))
{
aux3 = aux2.substr(1, len);
}
aux2=aux3;
document.getElementById(´e_descricao´).value = aux2;
}// fim do if (len > 2)
}//fim do else do if (len == 1)
}// fim do else do if (strCheck.indexOf(key) == -1)
} //fim do else do if ((keycode == 13) || (keycode == 0) || (keycode == 8))
}
return (false);

copia ele inteiro ok
espero ter ajudado
Webmoura


Responder

21/04/2008

Jpdo

funciona valeu


Responder