Como Posso Criar em Java Script Uma Máscara para Valor Exemplo 1.000.000.000,00 [RESOLVIDO]

12 respostas
Jhoni_Bravo

Bom dia Galera,

Preciso criar uma máscara no INPUT Text para o campo de valor, Exemplo 1.000.000.000,00. Um tipo que encontrai de máscara Fixa ###.###.###,##  não me serve, precisava ser um que vai inserindo os pontos conforme a as casas decimais aumenta-se.
 Se Alguém tiver alguma idéia eu agradeço

Obrigado

12 Respostas

Jhoni_Bravo

:roll:

L

abrx

ruivo

lokit"s:

abrx

Você leu o tópico?

@Jhoni_Bravo

Eu já usei esse plugin odo Jquery. Funcionou muito bem

http://digitalbush.com/projects/masked-input-plugin/

L

fala aew o sabe tudo do car$%$%o!

eu sou cego sabia!!!

o que vem na mente eu escrevo!!!

ruivo

lokit"s:
fala aew o sabe tudo do car$%$%o!

eu sou cego sabia!!!

o que vem na mente eu escrevo!!!

Não ofenda os cegos. Eles ao menos sabem ler (e interpretar textos).

L

pq não vai si fuder!!! foi uma indereta!!!(não sabia que cego sabia ler,o cara deve ser foda neh !!!)

cabeça chata tem que ser dessa terrinha mesmo …olha o facão!!!

já disse fera vc é o sabidão mano!!!

deus acude aqueles à ofensas!

AnDrOiDe

lokit"s:
pq não vai si fuder!!! foi uma indereta!!!(não sabia que cego sabia ler,o cara deve ser foda neh !!!)

cabeça chata tem que ser dessa terrinha mesmo …olha o facão!!!

já disse fera vc é o sabidão mano!!!

deus acude aqueles à ofensas!

rachei agora!!!

cabeça chata é frodis!!

e pelo que eu saiba amigo, cego não lê e nem sabe interpretar textos!!! malz mas tu é bu.rro

Jhoni_Bravo

lokit"s

Obrigado pela ajuda, isso vai acabar me ajudando com outra coisa que está amarado a esse problemas.

Valeu

Jhoni_Bravo

ruivo

Com o JQuery funcionou Bacana, mas meu gerente não que usar o JQuery no projeto( para não colocar outras bibliotecas), vou tentar arrumar algo com o JavaScript.

 A Função abaixo funciona no Java Script, mas está com Erro que não consigo desifrar.

Quando digito no campo pela primeira vez blz, ele preenche normalmente, mas o que tá acontecendo quando do um Enter ou TAB e retorno no campo para redigitar o valor por algum erro de digitação ele duplica a unidade que digitei, se eu der outro tab ele vai aumento um valor na variavel e bem estranho.

Exemplo do Erro: Digitei 1 o certo seria 0,01
quando usa a tecla TAB fica assim 0,11
se eu der outro TAB e digitar somente 1 fica 1,11

é como estivesse aumentando as variaveis como uma soma de objetos sei lá.

function formatCurrency(o, n, dig, dec) { o.c = !isNaN(n) ? Math.abs(n) : 2; o.dec = typeof dec != "string" ? "," : dec, o.dig = typeof dig != "string" ? "." : dig; addEvent(o, "keypress", function(e) { if (e.key > 47 && e.key < 58) { var o, s, l = (s = ((o = this).value.replace(/^0+/g, "") + String.fromCharCode(e.key)).replace(/\D/g, "")).length, n; if(o.maxLength + 1 && l >= o.maxLength) return false; l <= (n = o.c) && (s = new Array(n - l + 2).join("0") + s); for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += o.dig); n && n < l && (s[l - ++n] += o.dec); o.value = s.join(""); } e.key > 30 && e.preventDefault(); }); } ;

Caso alguém saiba o que acontece agradeço

ruivo

Como você está chamando a função formatCurrency? Quais os parâmetros dela?

Jhoni_Bravo

ruivo,

Já resolvi o problema, tive que fazer uma alteração, veja o código
function formatCurrency(o, n, dig, dec) { 
           o.c = !isNaN(n) ? Math.abs(n) : 2; 
           o.dec = typeof dec != "string" ? "," : dec, o.dig = typeof dig != "string" ? "." : dig; 
           addEvent(o, "keypress", function(e) { 
                   if (e.key > 47 && e.key < 58) { 
                         var o, s, l = (s = ((o = this).value.replace(/^0+/g, "") + String.fromCharCode(e.key)).replace(/\D/g, "")).length, n; 
                                                 
                         if(o.maxLength + 1 && l >= o.maxLength) return false; 
                         l <= (n = o.c) && (s = new Array(n - l + 2).join("0") + s); 
                         for(var i = (l = (s = s.split("")).length) - n; (i -= 3) > 0; s[i - 1] += o.dig); 
                         n && n < l && (s[l - ++n] += o.dec); 
                         o.value = s.join(""); 
                         e.key > 30 && e.preventDefault(); 
                         e.key=0                  } 
                  else{
                    e.key > 30 && e.preventDefault();                     
                  }
                  
           }); 
        } ;

Tive que acrescentar esse cara aqui
[b][i]

o.value = s.join("");

e.key > 30 && e.preventDefault();

e.key=0                  }

else{

e.key > 30 && e.preventDefault();

}

[/i][/b]

Obrigado

Jhoni_Bravo

:lol:

Criado 30 de agosto de 2011
Ultima resposta 31 de ago. de 2011
Respostas 12
Participantes 4