Jump to content
Fórum Script Brasil
  • 0

Mask de dinheiro para campo


Fragata

Question

Pessoal preciso de uma mask que me permita fazer isso:

5.000,00

Tenho somente um código que m permite colocar números fixos, tipo data 10/10/50, seis números, mas esse de colocar valor monetário tá bem complicado pra mim.

Além do mais, pesquisando por alguns fóruns descobri que precisa ser digitado da direita pra esquerda, como caixa de banco, porque assim o cara passa a vírgula sem problemas.

E ainda a numeração não pode ser fixa T T

Alguém pode me ajudar? Obrigado o/

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Cara eu uso uma classe jquery que é perfeita pra todo tipo de mascara, você quem cria as mascaras. Primeiro baixe e de include neste arquivo:

mask.js

após você pode já deixar programado suas mascaras, chame no começo de sua pagina ou em um arquivo javascript geral os seguintes codigos:

$(function(){
// masks
    $.mask.masks.hora = {
        mask: '24:59'
    }
    $.mask.masks.numeric = {
        mask:'9',
        type:'repeat'
    }
    $.mask.masks.data    = {
        mask: '39/19/2999'
    }
    $.mask.masks.fone    = {
        mask: '(99) 9999-9999'
    }
    $.mask.masks.cep     = {
        mask: '99999-999'
    }
    $.mask.masks.cpf     = {
        mask: '999.999.999-99'
    }
    $.mask.masks.money   = {
        mask : '99,999.999.999.999',
        type : 'reverse',
        defaultValue : '+000'
    }
    $('input:text').setMask(); 
});
após isso é só utilizar desta maneira:
<input type="text" name="" alt="money"/>

espero ter ajudado, abraços

Link to comment
Share on other sites

  • 0

Cara, obrigado mesmo, mas acabei nem usando seu código, tentei mas não deu certo xD

--------------

Pra quem quiser, eu encontrei esse script aqui que é especificamente pra valor monetário, é bem fácil.

=====================Script=====================

function maskIt(w,e,m,r,a){
    
    // Cancela se o evento for Backspace
    if (!e) var e = window.event
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
        
    // Variáveis da função
    var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
    var mask = (!r) ? m : m.reverse();
    var pre  = (a ) ? a.pre : "";
    var pos  = (a ) ? a.pos : "";
    var ret  = "";

    if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;

    // Loop na máscara para aplicar os caracteres
    for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
        if(mask.charAt(x)!='#'){
            ret += mask.charAt(x); x++;
        } else{
            ret += txt.charAt(y); y++; x++;
        }
    }
    
    // Retorno da função
    ret = (!r) ? ret : ret.reverse()    

   if (w.value.match("-")){
        w.value = "-"+ret+pos;
    }else{
        w.value = pre+ret+pos;
    }

}

// Novo método para o objeto 'String'
String.prototype.reverse = function(){
    return this.split('').reverse().join('');
};
===================Campo================================
<input type="text" name="dinheiro" onkeyup="maskIt(this,event,'###.###.###,##',true,{pre:'R$', pos:''})
" />

----------------------------------------------

Obrigado pela ajuda novamente o/

Edited by Fragata
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...