nosliwde Postado Maio 6, 2009 Denunciar Share Postado Maio 6, 2009 Oi pessoal.A Funcao abaixo formata um valor monetario da seguinte forma:Se entro com o valor 10000 ela formata 10000,00.Gostaria que ficasse formatadao assim: 10.000,00 ou se o valor entrado fosse 1000000 (Um Milhao), que ficasse assim 1.000.000,00.Eis a funcao:// CAMPO DO TIPO 0,00 function FormataValor(campo, tammax, teclapres) { tecla = teclapres.keyCode if (tecla==9) return vr = campo.value vr = vr.replace( ",", "" ) vr = vr.replace( ".", "" ) vr = vr.replace( ".", "" ) vr = vr.replace( "/", "" ) tam = vr.length if ((tam>2)&&(vr.substring(0,1)==0)) { campo.value = vr.substring(1,tam) vr = campo.value tam = vr.length } if (tam > tammax) return if (tecla == 8) tam=tam-2 if (tam<2) campo.value = "0," + vr else campo.value = vr.substring(0,tam-1) + "," + vr.substring(tam-1, vr.length) }O que tenho que mudar pra que ocorra o resultado que espero, como citado nas primeiras linhas?Aguardo sua ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eliseu M. Postado Maio 6, 2009 Denunciar Share Postado Maio 6, 2009 Aí fera, dei uma olhada na net e achei isso:<script> function Limpar(valor, validos) { // retira caracteres invalidos da string var result = ""; var aux; for (var i=0; i < valor.length; i++) { aux = validos.indexOf(valor.substring(i, i+1)); if (aux>=0) { result += aux; } } return result; } //Formata número tipo moeda usando o evento onKeyDown 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 <= 5) ){ campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ); } if ( (tam >= 6) && (tam <= 8) ){ campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); } if ( (tam >= 9) && (tam <= 11) ){ campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); } if ( (tam >= 12) && (tam <= 14) ){ campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, tam ); } if ( (tam >= 15) && (tam <= 17) ){ campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - 2, tam );} } } </script> E essa aí é o code da INPUT: <input type="text" name="texto" size="20" onKeydown="Formata(this,20,event,2)">É lgl porque ele reseta o field quando você n digita números :DCréditos: psychocandy do guiadohardware.netTé +! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nosliwde
Oi pessoal.
A Funcao abaixo formata um valor monetario da seguinte forma:
Se entro com o valor 10000 ela formata 10000,00.
Gostaria que ficasse formatadao assim: 10.000,00 ou se o valor entrado fosse 1000000 (Um Milhao), que ficasse assim 1.000.000,00.
Eis a funcao:
O que tenho que mudar pra que ocorra o resultado que espero, como citado nas primeiras linhas?
Aguardo sua ajuda.
Link para o comentário
Compartilhar em outros sites
1 resposta 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.