Ir para conteúdo

POWERED BY:

Arquivado

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

Giuliano Santos

Javascript com valor moeda

Recommended Posts

Estou fazendo um formulário para calcular substituição tributária, mais nesse formulário tenho que apresentar os valores formatados em R$.
Alguém pode me ajudar em como fazer isso?

Segue o meu código:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Cálculo ST</title>
        <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
        <meta name="robots" content="index,follow" />
        <meta http-equiv="content-language" content="pt"/>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
		
        <script type="text/javascript">

			$(document).ready(function(){

			$("button").click(function(){

			//declaração das variáveis
			var vl_produto = 0,ipi_porcent = 0, desconto_porcent = 0,mva_porcent = 0, base_st_porcent=0,
                        icms_produto = 0, vl_ipi=0, vl_prod_ipi_desc = 0, vl_mva = 0, base_st = 0;

			//pegando as notas dos campos inputs
			vl_produto = parseInt($("input[name=vl_produto]").val());
			ipi_porcent = parseInt($("input[name=ipi_porcent]").val());
			desconto_porcent = parseInt($("input[name=desconto_porcent]").val());
			mva_porcent = parseInt($("input[name=mva_porcent]").val());
			base_st_porcent = parseInt($("input[name=base_st_porcent]").val());
			icms_produto = parseInt($("input[name=icms_produto]").val());
			
			//formula para cálculo
			vl_ipi = ((vl_produto * ipi_porcent)/100);
			vl_desconto = ((vl_produto * desconto_porcent)/100);
			vl_prod_ipi_desc = ((vl_produto+vl_ipi)-vl_desconto);
			vl_mva = ((vl_prod_ipi_desc * mva_porcent)/100);
			
			base_st = ((vl_mva) + (vl_prod_ipi_desc));
			

			//mostra o resultado no input 
			$("input[name=vl_ipi]").val(vl_ipi);
			$("input[name=vl_desconto]").val(vl_desconto);
			$("input[name=vl_prod_ipi_desc]").val(vl_prod_ipi_desc);
			$("input[name=vl_mva]").val(vl_mva);
			$("input[name=base_st]").val(base_st);
			

			return false;
			});
			});
        </script>

		<link rel="stylesheet" href="form_styles.css">

    </head>
    <body>
        <form id="calculost" class="rounded" name="calculo" method="post" action="">
		
			<h2 align="center">Calculando Substituição Tributária</h2>
			
             <div class="field">
                 <label for="">VL Produto</label>
                 <input class="input" type="text" name="vl_produto" value="0" />
				 <p class="hint">Entre com o valor do produto.</p>
             </div>
			 
			 <p>-----------------------------------------------------------------------------------</p>
			 
             <div class="field">
                 <label for="">IPI %</label>
                 <input class="input" type="text" name="ipi_porcent" value="0" />
				 <p class="hint">Entre com a porcentagem do IPI.</p>
             </div>
             <div class="field">
                 <label for="">Valor do IPI </label>
                 <input class="input_readonly" type="text" name="vl_ipi" readonly="readonly" value="" />
             </div>
			 
			 <p>-----------------------------------------------------------------------------------</p>
			 
			 <div class="field">
                 <label for="">Desconto % </label>
                 <input class="input" type="text" name="desconto_porcent" value="0" />
				 <p class="hint">Entre com a porcentagem do desconto.</p>
             </div>
			 <div class="field">
                 <label for="">Vl do Desconto </label>
                 <input class="input_readonly" type="text" name="vl_desconto" readonly="readonly" value="" />
             </div>
			 
			 <p>-----------------------------------------------------------------------------------</p>
			 
			 <div class="field">
                 <label for="">Valor do Produto </label>
                 <input class="input" type="text" name="vl_prod_ipi_desc" readonly="readonly" value="" />
             </div>
			 
			 <p>-----------------------------------------------------------------------------------</p>
			 
			 <div class="field">
                 <label for="">MVA % </label>
                 <input class="input" type="text" name="mva_porcent" value="0" />
				 <p class="hint">Entre com a porcentagem do MVA.</p>
             </div>
			 <div class="field">
                 <label for="">Valor do MVA </label>
                 <input class="input_readonly" type="text" name="vl_mva" readonly="readonly" value="" />
             </div>
			 
			 <p>-----------------------------------------------------------------------------------</p>
			 
			 <div class="field">
                 <label for="">Base ST</label>
                 <input class="input_readonly" type="text" name="base_st" readonly="readonly" value="" />
             </div>
			 
             <p>
                 <button class="button">Calcular</button>
             </p>
         </form>

    </body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Bruno, muito obrigado pela ajuda. Peguei um dos exemplos que você postou mais só deu certo para os campos que eu preencho, os campos que trazem os resultados não estão mostrando os valores formatados.

Nesse caso como devo fazer?

 

O exemplo que estou utilizando é esse:

<script type="text/javascript">
function id(el){
    return document.getElementById(el);
}
String.prototype.formatMoney = function(){
    var v = this.replace(/(\d{1,3})$/g,"$1,00");
    v = v.replace(/(\d{1,3})(\d{3},00)$/,"$1.$2");
    return v;
};
window.onload = function(){
    id('moeda').onblur = function(){
        var v = this.value;
        if( v.indexOf(',')===0 ){
            v = v.replace(',','');
            if(v.length===1) v = '0,' + v + '0';
            else v = '0,' + v;
        } else {
            v = v.formatMoney();
        }
        this.value = v;
    }
};
</script>
<input type="text" name="moeda" id="moeda" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o formatMoney depois do calculo

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.