Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aander.silva

[Resolvido] Imprimir valor monetário em um input

Recommended Posts

Pessoal, esse é o meu primeiro post nesse fórum!

Pelo que estive olhando, acredito que esse é um dos melhores fóruns(se não o melhor) e pretendo aprender muito com vocês e também ajudar no que eu puder. Estou recomeçando na área de programação, então conto muito com a ajuda de vocês!

 

Seguinte... tenho uma variável numa função javascript e estou imprimindo dentro de um input text. Segue o código...

 

document.form1.valor.value = total;

 

 

A pergunta é: Como eu faço para imprimir essa variável já formatada na moeda Brasileira R$?

 

 

Desde já agradeço pela força que tenho certeza que vou receber.

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vindo ao fórum :lol:

Mas como assim formatar na moeda brasileira? Por exemplo, se a pessoa colocar no input "15", aparecer "R$15,00"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado!

 

Exatamente! Não precisa nem aparecer o R$, só mesmo formatar o valor impresso com vírgula e pontos...

Em vez de imprimir 1500, imprimi 1.500,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas isso aí depende. Porquê tipo, a pessoa pode digitar 516, mas como você vai saber a qto ela está se referindo? R$5,16, R$51,6 ou R$516?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Só que isso já é a impressão!

 

O cara digita a QUANTIDADE do produto e o VALOR. Aí esse total é a multiplicação desses dois, não um valor que ele digita.

 

Aí o valor total da variável pode ser 1500, isso seria 1.500,00.

Se fosse 100, isso seria 100,00. E por aí vai...

 

Eu vi que tem uma função que vai formatando(colocando ponto e vírgula) o valor de acordo com que a pessoa vai digitando... http://www.hardware.com.br/comunidade/javascript-formatar/198303/

 

Mas não consigo aplicar isso no meu caso.

 

Valeu

 

O comando em Javascript seria comparado a esse do PHP

 

number_format($valor, 2, ',', '.');

 

Nesse comando se o número for 513250.36 ele imprimi R$ 513.250,36

Se for 513250 ele imprimi R$ 513.250,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, pelo o que eu entendi, esse código funciona exatamente ao seu caso.

Ele vai formatando a variavel conforme o valor é digitado.

Ou você não quer que formate enquanto o valor é digitado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que o valor que eu quero imprimir não é digitado, ele já é somado.

 

Coloco a quantidade (10) e depois o valor (25) aí no total vai aparecer 250.

 

Hoje eu imprimir esse totoal(250) com esse código.

 

 

document.form1.valor.value = total;

No form1, input VALOR ele imprimi a variável TOTAL que é a multiplicação de 10 * 25

 

 

Nesse código que você viu ele ativa a função com onKeyPress. Mas no meu caso o cara não digita no valor total.

Aí no input do valor total eu já tentei trocar pra em vez de chamar a função por onKeyPress, chamar por, onChange ou onFocus.

Mas não funciona!

 

Obrigado por está ajudando

 

Esse código aqui em baixo, de acordo com que o usuário vai digitando, vai formatando o número.

 

A função é executada pelo código onKeydown. No meu caso essa função deveria funcionar com o onChange ou onFocus mas não rola.

 

texto1: <input type="text" name="texto" size="20" onKeydown="Formata(this,20,event,2)">

 

 

 

 

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDOOOOOOOOOOOOOOO

 

 

// FUNÇÃO PARA FORMATAR O VALOR TOTAL COM CASAS DECIMAIS

 

<script>

function number_format( number, decimals, dec_point, thousands_sep ) {

var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;

var d = dec_point == undefined ? "," : dec_point;

var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";

var i = parseInt(n = Math.abs(+n || 0).toFixed©) + "", j = (j = i.length) > 3 ? j % 3 : 0;

return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed©.slice(2) : "");

}

</script>

 

 

//IMPRIMI A VARIÁVEL TOTAL EM UM INPUT CHAMADO TOTAL COM VÍRGULA E PONTOS

 

document.form1.valortotal.value = number_format(total ,2, ',' , '.');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.