Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago Pina

[Resolvido] Máscara Moeda e cálculo do campo

Recommended Posts

Pessoal,

 

sou iniciante no JavaScript e já estou a uma semana tentando fazer isso e não consigo, espero que alguém possa me ajudar.

Tenho um formulário com 3 campos:

- Valor da Renda(Campo Texto): Aqui preciso que conforme o usuário digite o valor ele inclua o(s) ponto(s) e a vírgula. Ex: 1.560,32

- RMC(Combo com duas opção: SIM e NÃO)

- Margem(text): Esse campo vai receber o valor da renda vezes 30%, se o RMC for NÃO, ou 20% se o RMC for SIM.

 

Após esse cálculo o campo margem teria qu exibir o resultado em forma de moeda (Ex: R$200,00; R$1.350,50 )

 

Espero que alguém posso me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.codigosnaweb.com/Mascara-para-valormoeda-/13/875

 

Basta uma googlada :-)

 

Editado:

 

Na verdade essa função que passei funciona, mas é horrível. Utilize expressões regulares.

Outro link para te ajudar: http://elcio.com.br/ajax/mascara/

 

Aconselho o estudo a expressoes regulares. Com elas você resolve isso num tapa.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro H4X0R,

 

inicialmente obrigado pela resposta.

com relação ao primeiro link que você passou ele não adianta muito para o meu caso, pois eu teria que entrar com os valores sem ponto e sem vírgula, e na verdade preciso que a pontuação (ponto para separar milhar e vírgula para separar as casas decimais) apareça automaticamente conforme o usuário vá digitando o valor.

Já o segundo link não tem nenhum expressão relacionada com moeda(R$).

Já procurei bastante no google, tem muita coisa mesmo, mas também tem muita que não funciona. mesmo assim abrigado.

se mais alguém puder dar uma ajuda ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom cara, preciso terminar alguns trabalhos urgentes e não poderei ficar no forum muito.

Mas me diga: pode ser em jQuery?

 

Posso passar aqui depois e escrever uma funcaozinha usando expressoes regulares com jQuery para você se ninguem tiver solucionado ainda.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Segue uma função muito boa que achei e não utiliza ERs:

 

function formataMoeda(objTextBox,SeparadorMilesimo, SeparadorDecimal,e){
    var sep = 0;
    var key = ”;
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = ‘0123456789′;
    var aux = aux2 = ”;
    var whichCode = (window.Event) ? e.which : e.keyCode;
    // 13=enter, 8=backspace as demais retornam 0(zero)
    // whichCode==0 faz com que seja possivel usar todas as teclas como del, setas, etc
    if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8))
    return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave     if (strCheck.indexOf(key) == -1)
   	return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != ‘0′) && (objTextBox.value.charAt(i) != SeparadorDecimal))
       	break;
   aux = ”;
    for(; i  2) {
        aux2 = ”;
        for (j = 0, i = len - 3; i >= 0; i–) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
           aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = ”;
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i–)
        	objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

Modo de uso (colocar no input):

 

onKeyPress=”return(formataMoeda(this,’.',’,',event))”

Com ERs também é possivel, mas é complicadinho. Tentei rapidamente fazer, mas não consegui, passei o dia programando hoje. Mas esta função que passei é eficaz e rápida de ser executada.

 

Abraços, sucesso!

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.