Eu estou readaptando uma função que formata valores em moeda, para que possa ser inserido no banco, valores com 6 casas decimais. Mas estou tendo problemas, quando o valor digitado for maior que 999,999999. A função funciona perfeitamente quando são digitados valores menores que 1.000, mas igual ou maior que esse valor, a função deixa de formata com 6 casas decimais e passa a formatar com 5 casas decimais. Segue o código a baixo:
A FUNÇÂO:
function Formata(campo,tammax,teclapres,decimal) {
var tecla = teclapres.keyCode;
vr = Limpar(campo.value,"0123456789");
tam = vr.length;
dec=decimal
if (tam < tammax && tecla != 8){ tam = vr.length + 1; }
if (tecla == 8 )
{ tam = tam - 1; }
if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 )
{
if ( tam <= dec )
{ campo.value = vr; }
if ( (tam > dec) && (tam <= 9) ){
campo.value = vr.substr( 0, tam - 6 ) + "," + vr.substr( tam - 6, tam ); }
if ( (tam >= 10) && (tam <= 12) ){
campo.value = vr.substr( 0, tam - 9 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam );}
if ( (tam >= 13) && (tam <= 15) ){
campo.value = vr.substr( 0, tam - 12 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ); }
if ( (tam >= 16) && (tam <= 18) ){
campo.value = vr.substr( 0, tam - 15 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ); }
if ( (tam >= 19) && (tam <= 21) ){
campo.value = vr.substr( 0, tam - 18 ) + "." + vr.substr( tam - 18, 3 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam );}
}
}
Pergunta
Hambonso
Eu estou readaptando uma função que formata valores em moeda, para que possa ser inserido no banco, valores com 6 casas decimais. Mas estou tendo problemas, quando o valor digitado for maior que 999,999999. A função funciona perfeitamente quando são digitados valores menores que 1.000, mas igual ou maior que esse valor, a função deixa de formata com 6 casas decimais e passa a formatar com 5 casas decimais. Segue o código a baixo:
A FUNÇÂO:
No FORMO que está errado no código da função que está causando esse erro na formatação durante a digitação ?
Desde já agradeço pela atenção.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.