Como implementar entada de Valores Monetários com Virgula
30/03/2008
0
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.
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.
Sluisrj
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)