Ir para conteúdo
Fórum Script Brasil
  • 0

Formatar Valor R$ (RESOLVIDO)


--_Michel_--

Pergunta

Bom deixa eu explicar...

O usuário ira lançar um valor de 15.000,00 reias. Bom lógicamente que ele não ira digitar os pontos nem a virgula... Gostaria de saber se tem como fazer o usuário ir digitando o número e os pontos e a vírgula ir se encaixando no valor...

por exemplo:

se ele digitar os dois primeiros digitos iria ficar assim: (15,) depois se ele digitasse mais os três zeros iria ficar assim: 15.000 e ao final digitando mais os dois zeros finais assim: 15.000,00

Seria como autocompletar o número. Pois estou tendo problemas com isso, pois quando o usuário cadastra um valor no banco de dados e depois eu usar a função para formatar o valor para ser exibido da os seguintes erros.

Vamos supor que ele queira cadastrar um produto de quinze mil reais.

se ele digitar assim: 15000 será visualizado assim: 15.000,00

se ele digitar assim: 1500000 será visualizado assim 1.500.000,00

O erro é se ele cadastrar os centavos...

Gostaria de saber se tem como o usuário ir digitando e os pontos e visrgulas se encaixando no valor que ele esta digitando, pois assim não terá erro na hora de inserir um valor...

Editado por --_Michel_--
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Amigo, se você quer fazer alguma coisa enquamto o usuario digita, você tem que usar javascript.

É isso que você quer?

Se for eu movo a mensagem pra lá!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

não brother..

ASP só é executado quando for clicado em algum botao, ou alguma coisa assim.

Só após a pagina ser recarregada.

Assim, enquanto digita, só javascript mesmo.

Vou mover para lá!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Galera... Já achei o código que eu queria....

Vejam

<html>

<head>

<title>Formatação de Valores monetarios</title>

</head>

<body>

<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>

<input type="text" name="T1" size="20" onKeydown="Formata(this,20,event,2)"></p>

</p>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest José Pires

Prezado, use esta função. Aqui funciona.

<script LANGUAGE="JavaScript">


///////////////////////////////////////////////
// onKeyPress ="FormataValor(this,11,event);" /
///////////////////////////////////////////////
function FormataValor(campo,tammax,teclapres) {

    var tecla = teclapres.keyCode;
    var vr = campo.value;
    vr = vr.replace( "/", "" );
    vr = vr.replace( "/", "" );
    vr = vr.replace( ",", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    tam = vr.length;

    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 <= 2 ){ 
             campo.value = vr; }
         tam = tam - 1;
         if ( (tam > 2) && (tam <= 5) ){
             campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }
         if ( (tam >= 6) && (tam <= 8) ){
             campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, 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 - 2, 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 - 2, 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>

Obs.: para valores 0,01 até 0,99 tem que digitar assim 001 até 099

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...