67 comentários

  1. Greenomac Dias

    Amigo coloquei igual o codigo porem nao funcionou, ele nao permiti editar o campo quando clico ja aparece R$0,00

  2. Wilson

    puxa amigo,
    não consegui fazer funcionar no meu
    o que sera que estou fazendo errado ?

  3. Wilson

    como instalo o maskMoney ?

  4. gilmara

    No chrome e ie funciona, só no firefox que não.

  5. Flávio

    Aqui pra mim no Firefox tbm n funciona.

  6. Mauricio Magnani

    Olá,
    Eu testei com o PrimeFaces 3.4 e JSF 2 e funcionou perfeitamente.
    O unico problema que tive foi por que o primefaces já possui o JQuery entao nao removi a linha
    No Mais funciona perfeitamente.

    Obrigado.

  7. Mauricio Magnani

    Olá,
    Eu testei com o PrimeFaces 3.4 e JSF 2 e funcionou perfeitamente.
    O unico problema que tive foi por que o primefaces já possui o JQuery entao removi a linha de inclusao do jquery.js.

    No Mais funciona perfeitamente.

    Obrigado.

  8. Junior Rodrigues

    Olá Rafael, ótimo post, está sendo de grande ajuda, mas o problema é o seguinte, estou tentando criar uma máscara para placa de carro, no caso, XXX-9999, mas ele não permite letras, somente números. É isso mesmo, ou eu estou fazendo algo errado?

  9. Junior Rodrigues

    Droga… postei na mascara errada, desculpe, vou transferir minha pergunta para o outro post…

  10. Willian

    Olá Rafael, pessoal!

    Sim, existe um bug com Firefox. Aqui, não funciona no Firefox 15.0.1 (e outros, que vi).
    Para funcionar, coloque “maxlength” com algum valor no input em questão, por exemplo:
    maxlength=”90″

    Boa sorte!

  11. Regina Lúcia Torres Chaves

    Parabéns pelo post.
    Muito bem explicado e comentado, tornando possível sua aplicação para quem não tem tanto conhecimento em jquery
    Parabéns

  12. Gabriel Silva

    Olá amigo, realmente tem algum bug em alguma parte que faz o código não funcionar no firefox. Talvez seja até a presença de outro plugin na mesma página.

    Abraço e boa colaboração.

  13. Carlos Araujo

    Olá Rafael, muito bom o artigo. É justamente o controle para casas decimais que estava procurando.
    Porém, hoje eu utilizo o maskInput e mesmo com as alterações sugeridas por você, dá conflito e não funciona.
    Existe mais alguma coisa a ser feita para os 2 funcionarem juntos ?
    Obrigado,
    Carlos

  14. Diego Plentz

    Pessoal, já corrigi a maioria dos problemas falados aqui(inclusive o do conflito com o maskedinput), mas caso encontrem problemas nele ainda, basta abrir issue no site do plugin https://github.com/plentz/jquery-maskmoney

  15. leonardo

    Ola, usando com html5 consegui fazer funcionar apenas no firefox, mas chrome nao

  16. Felipe

    Valeu!
    Melhor tutorial que encontrei

  17. Adriano

    Pessoal, td bem, estou utilizando na minha aspx e dentro de um contentplaceholder, quando inicio a página funciona uma beleza, mas ao clicar no botão incluir na minha página ele perde a funcionalidade no campo de valor, veja como faço:

    $(document).ready(function(){
    $(“input.dinheiro”).maskMoney({showSymbol:false, symbol:”R$”, decimal:”,”, thousands:”.”});
    });

    E no meu html fica:

    Valor

    Alguém pode ajudar ??? Obrigado!!

  18. Márcio Gacilin

    Trabalho com asp.net mvc. Percebi que ao informar um valor maior ou igual 1.000, o valor passado para o action é zero.

  19. Susana

    Opa esse plugin é uma maravilha, um verdadeiro salvador de almas 😀

  20. Junior Ferreira

    Problema, quando trabalho com uma condição na select para ocultar e exibir o campo com a mascara, apos uma mudança funciona bem, já ao mudar novamente o campo buga carregando duas mascara.
    function Esconde(){

    var valor = $(“#tipo”).val();

    if(valor == “Entrada”){
    $(‘#valor’).show();
    $(‘#valorlbl’).show();
    $(“#valor”).maskMoney({showSymbol:true,symbol:”R$”, decimal:”,”, thousands:”.”, allowZero:true});
    }
    if(valor == “Saida”){
    $(‘#valor’).hide();
    $(‘#valorlbl’).hide();
    }

    }

  21. Daniel como usar a maskmoney no grails

    gostaria de ver funcionar essa marcara no grails…

  22. Paulo Estêvão

    Excelente post!
    Já tinha feito funcionar por outros caminhos.
    Estou tendo problemas na hora de gravar. O valor fica dividido por 100.
    Tem alguma orientação pra dar?
    Desde já obrigado.
    E parabéns pela iniciativa.

  23. Paulo Estêvão

    Rafael, obrigado pela resposta.

    O HTML é assim:
    Valor Multa:

    Valor Atualização:

    e o javascript assim:

    // <![CDATA[
    jQuery(function($) {
    $(".Valor").maskMoney({prefix:'R$ ', allowNegative: false, thousands:'.', decimal:',', affixesStay: false, allowZero:true, precision: 2});
    $(".ValorAtual").maskMoney({prefix:'R$ ', allowNegative: false, thousands:'.', decimal:',', affixesStay: false, allowZero:true, precision: 2});
    // ]]>

    o browser está enviando o seguinte:

    valor = 15.648,55, vlrAtualizMonetaria = 900,56,

    Ou seja, o campo está formatado. Se conseguisse retirar a formatação antes de mandar gravar, creio que resolveria.

    Abraço e obrigado.

  24. Paulo Estêvão

    Espero que agora vá o conteudo certo

    Valor Multa:

    Valor Atualização:

  25. luiz

    Ola,
    Estou com problemas ao digitar valores negativos, o sinal de – so funciona no final.

  26. Mestre dos magos

    Funciona perfeito como uma luva, valeu mesmo cara! abração!

  27. Tony

    Valew, ajudou a aprimorar a mascara dos campos aqui da empresa.

  28. marco tulio

    valeu amigo precisava apenas separar a casa de milher para formatar um numero inteiro e aqui no seu post encontrei o parametro: precision:0 ai foi batata!!

  29. Jan Carlo

    Bom dia, eu tenho um campo neste caso o comando
    $(‘.moeda’).maskMoney({prefix:”, thousands:’.’, decimal:’,’, symbolStay: true});
    funciona perfeitamente, mas eu também crio campos dinamicamente como este
    $(‘#d_valorparcelap’+($i)).append( ” );
    neste caso o maskMoney não está funcionando , alguma sugestão ?

  30. Jan Carlo

    em inputs criados com append pelo jquery o maskmoney não funciona.

  31. Jan Carlo

    Rafael, eu chamo dentro de $(document).ready(function()
    {
    no final dele eu boto
    $(‘.moeda’).maskMoney({prefix:”, thousands:’.’, decimal:’,’, symbolStay: true}); // pra campos decimais

    chamo pela classe .moeda, e tanto os inputs que funcionam bem , como os que crio dinamicamente que não funcionam tem a classe .moeda

  32. Jan Carlo

    eu estou achando que a maskmoney usa bind e não live, nem delegate, por isso não funciona, ou não tem nada a ver ?

  33. Jan Carlo

    resolvi, valeu.

    1. Fabio Freitas

      Olá Jan,
      Como você resolveu?

  34. Isnaldo

    Aqui funcionou, Show de Bola Cara !!!!!!!!

  35. Tiago

    Eu tentei usar, mas não funciona. Dá erro “undefined is not a function”. Sabe do que se trata? O maskedInput funcionou normalmente.

  36. Lucas

    Tem como colocar máscara para informações retiradas do meu Bando de Dados?

    Tipo puxo um valor decimal e transformo ele pra monetário, mas utilizando em texto (), tem como?

  37. Diego

    Rafael, boa tarde!
    Embora eu tenha feito o plugin funcionar normalmente na página que havia desenvolvido, quando eu faço um include “php” desta página, o plugin não funciona mais.

    A minha dúvida mais detalhada está nestes dois links:
    http://forum.imasters.com.br/topic/531598-plugin-maskmoney-nao-roda-por-include/
    http://www.scriptbrasil.com.br/forum/topic/177930-phpmaskmoney-nao-funciona-no-include/
    Você já se deparou com esta situação antes?

  38. Diego

    Rafael, já consegui resolver.
    Portanto, pode desconsiderar o meu comentário anterior.

    Caso queira visualizar a solução, é só acessar os dois links que passei anteriormente.

  39. Ricardo

    Rafael, boa tarde.
    Estou usando o seu plugin, é muito bom, mas gostaria de tirar uma dúvida.
    Eu precisava fazer algo como mínimo e máximo. Tipo de 1 a 5. E não tem onde eu fazer isso com esse plugin né? Ou eu que não estou achando?

    No aguardo de uma resposta breve

  40. Leonardo

    ola! estou precisando muito de ajuda para juntar 2 codigos java. é que estou fazendo um site, e preciso somar as chekbox no formato moeda com R$ e mandar o formulario por e-mail. desde ja agradeço

    1º codigo

    function sumChecked() {
    var result = $(“input:checked”);
    var total = 0;
    for (var i=0;i<result.length;i++)
    {
    total = total+parseFloat(result[i].value);
    }
    $("#result").val(total.toFixed(2));
    }
    sumChecked();
    $(":checkbox").click(sumChecked);

    ————————————————————
    2º codigo

    String.prototype.formatMoney = function() {
    var v = this;

    if(v.indexOf(‘.’) === -1) {
    v = v.replace(/([\d]+)/, “$1,00”);
    }

    v = v.replace(/([\d]+)\.([\d]{1})$/, “$1,$20”);
    v = v.replace(/([\d]+)\.([\d]{2})$/, “$1,$2”);
    v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, “$1.$2,$3″);

    return v;
    };
    String.prototype.toFloat = function() {
    var v = this;

    if (!v) return 0;
    return parseFloat(v.replace(/[\D]+/g, ” ).replace(/([\d]+)(\d{2})$/, “$1.$2”));
    };
    (function(){
    “use strict”;

    var $chs = document.querySelectorAll(‘input[name=”ch[]”]’),
    $result = document.getElementById(‘result’),
    chsArray = Array.prototype.slice.call($chs);

    chsArray.forEach(function(element, index, array){
    element.addEventListener(“click”, function(){
    var v = this.value,
    result = 0;
    v = v.toFloat();

    if (this.checked === true) {
    result = $result.value.toFloat() + parseFloat(v);
    } else {
    result = $result.value.toFloat() – parseFloat(v);
    }

    $result.value = “R$ ” + String(result).formatMoney();
    });
    });

    }());

  41. Fabrício

    Já utilizo essa máscara faz uns 3 anos, porém, ainda não tinha tido necessidade de inserir opção para que a máscara aceite valor 0 (zero). Este post me ajudou bastante, obrigado.

  42. Fernando

    Rafael, eu coloco o seguinte código:
    $(“.input-prices”).maskMoney({decimal:’,’, prefix: ‘R$ ‘});

    O R$ aparece antes do valor, porém quando eu digito algo nada acontece, fica sempre em R$0,00.

    O que pode ser?

    Obrigado, abs!

  43. Nitro

    Excelente explanação, grato e parabéns!

  44. Raphael

    Vlw meu mano, consegui, estava precisando muito disso mesmo. Abraço!

  45. wilson rosa gomes

    estou desenvolvendo um sistema para e resolvi utilizar este script para moeda que é interessante, porém conforme atualização da biblioteca jquery é necessário alterar um parâmetro:
    linha 166:

    De: if ($.browser.msie) {
    Para: if(navigator.userAgent.match(“MSIE”)){

    somente isto, espero ter ajudado. abraços

  46. O Uso do InputNumber do Primefaces Extensions | Atitude Reflexiva

    […] extensão é uma alternativa ao MaskMoney, que também é muito bom, mas eu já estava utilizando um framework rico e não queria misturar as […]

  47. Wellington Americano

    Quando somando dois valores, não esta acima de milhar:

    $(“#txtCapexRedeAcesso”).blur(function () {
    var capexRedeAcesso = $(“#txtCapexRedeAcesso”).val().replace(‘.’, ”).replace(‘,’, ‘.’);
    var capexRedeBasica = $(“#txtCapexRedeBasica”).val().replace(‘,’, ‘.’);
    var capextotal = (parseFloat(capexRedeAcesso) + parseFloat(capexRedeBasica));
    $(“#txtCapexTotalProjeto”).val(capextotal);

    });
    $(“#txtCapexRedeBasica”).blur(function () {
    var capexRedeAcesso = $(“#txtCapexRedeAcesso”).val().replace(‘.’, ”).replace(‘,’, ‘.’);
    var capex

  48. Bruno

    Eu estou utilizando essa máscara e está funcionando bem, o único problema é que eu não sei definir a precisão numérica antes da virgula (ex: permitir que sejam incluídos apenas 2 números antes da virgula: 99,99). Alguém pode me ajudar? Obrigado.

  49. evandro silva

    Demorei, mas achei.Obrigado!
    Resolveu meu problema.

  50. Geraldo

    Alguém saberia como fazer funcionar com DevExpress no visual studio 2010?
    Eu tentei, nada acontece no campo textbox.

  51. Lukau Manuel João Garcia

    Valeu Mano o meu funciona muito bem… Valeu ai irmãos

  52. Higor Moroni

    Salve pessoa, gostei mt da mascara, muito funcional, porém só no front-end, quando eu tento transferir os valores do input para trabalhar ele em JSP, eles vem mal formatados, eu gostaria só dos numeros, pontos e virgulas não, alguém pode me ajudar quanto a isso?

  53. junior

    Problema quando o valor tem casa decimal = ,00
    por exemplo o valor sendo :
    20,00 mostra 20 e quando coloco o mouse no input fica pior aparece RS 0,20
    Como resolver ?

  54. michael

    eu gostaria de saber como enviar a variavel, pois valores acima de 1.000,00 estão sendo passados mal-formatados…

Deixar um comentário