Ir para conteúdo
klonder

Máscaras para TextField em JavaScript

Recommended Posts

Tentei incluir a máscara a seguir em um POST meu antigo, porém está fechado para novas respostas:

 

Todavia, para futuras consultas minhas e também para ajudar outras pessoas, venho deixar uma máscara interessante que acabei de terminar em JavaScript.

Ficou muito menor que a do POST acima:

<script type="text/javascript">
var iCount1;
var trava = false;

function MaskDown(e) {    
    if (trava == false) {
        iCount1 = e.value.length;
        trava = true;
    }
}

function MaskUp(e,mascara) {
    if (trava) {
        var textoLimpo = e.value.substr(0,iCount1+1).replace(/[\/\:\-\.]/g,"");
        var texto = "";
        
        var iM = 0;
        var iT = 0;
        while (iM < mascara.length) {
            if (iT < textoLimpo.length) {                
                if (mascara.substr(iM,1) == "#") {
                   texto += textoLimpo.substr(iT,1);
                   iT++;
                } else {
                    texto += mascara.substr(iM,1);
                }            
            }
        iM++;           
        }
    e.value = texto;
    trava = false;
    }    
}
</script>

Para funcionar, basta incluir em suas tags input os eventos, como demonstrado a seguir:

<input type="text" id="tfData" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##/##/####')" placeholder="dd/mm/aaaa" style="width:80px" />
<br /><input type="text" id="tfHora" onkeydown="MaskDown(this)" onkeyup="MaskUp(this,'##:##')" placeholder="hh:mm"  style="width:50px"/>
    

À medida que o usuário vai digitando, o valor campo vai sendo formatado. Pode ser usado para CPF, CEP, RG, dentre outros...

 

Divirtam-se!

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Vinny Oliveira
      Bom dia pessoal!
       
      Devido as mudanças no horário de verão que estão ocorrendo atualmente, algumas plataformas adiantaram incorretamente o horário.
      O comando "date" do php está retornando o horário adiantado, sendo que o servidor (windows) está com a hora e timezone(php.ini e clock do windows) correta.
      De onde o PHP está buscando esse horário? Como corrigir?
    • Por asacap1000
      Galera preciso de uma ajuda, não sei mais nem como procurar a cabeça está dando nó kkkk.
      Tenho projeto que estará controlando o tempo de acesso no estabelecimento impondo um limite de 100 minutos.
      Dentro do mesmo dia estou conseguindo realizar os calculos normais, porém se o usuário entrar 23:00 ele terá que sair no máximo às 00:40.
      O horário eu consegui montar conforme o select abaixo a data mantém a mesma da entrada.
      select aces.seqreg SEQUENCIA, aces.diracc SENTIDO, aces.horacc MINUTOS, --acesso em minutos (aces.horacc + 100) LIMITE, --limite de acesso foi adicionado mais 100 minutos CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast(aces.horacc / 60 as varchar), 2) + ':' + right( '00' + cast(aces.horacc - ((aces.horacc / 60) * 60) as varchar), 2 ) AS HORA,--data e hora de entrada CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' + right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair Convert(Char(5),GetDate(),114) ATUAL from kansas.kansas.r070ara aces LEFT JOIN kansas.kansas.r090mvi mv on aces.numcra = mv.numcra and aces.numdoc = mv.numdoc where CONVERT(DATETIME, CONVERT(NVARCHAR(10), aces.datacc, 103), 103) >= CONVERT(DATETIME, '29/09/2018', 103) and CONVERT(DATETIME, CONVERT(VARCHAR(10), aces.datacc, 103), 103) <= CONVERT(DATETIME, '29/09/2018', 103) and (aces.coddsp like '1') and aces.numdoc = '325605397' order by aces.seqreg, aces.nompes, aces.coddsp O problema está nesta parte do select:
       
      CONVERT(varchar(2), Day(aces.datacc)) + '/' + CONVERT(varchar(2), MONTH(aces.datacc)) + '/' + CONVERT(varchar(4), Year(aces.datacc)) + ' ' + right( '00' + cast( ((aces.horacc + 100)%1440)/60 as varchar), 2) + ':' + right( '00' + cast(((aces.horacc + 100)%1440)%60 as varchar), 2 ) 'SAIDA', --data e hora que deve sair A parte de data ele não traz a data seguinte na imagem abaixo a saída deveria ser 30/09/2018 01:27
       

       
      Alguém poderia me dar uma força tenho que entregar essa semana este projeto no trabalho e está muito punk a bagaça...
       
    • Por Rodymb
      Bom dia!
       
      Preciso fazer um update em um campo do tipo  int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
       
      update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114) FROM tab_nota_header where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59' and numpdv=111 and codloja=1 and numnota=74841) where m00af='2018-08-01' and m00za=1 and m00ac=111 and m00ad=69614
       
      Esse update retornou a seguinte mensagem:
      Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
       
      No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
      Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
       
      Existe alguma forma de fazer esse update da forma que preciso?
       
    • Por Cícero Antônio
      Olá Pessoal,
       
      Qual a média, ou a base de cálculo, para cobrança da hora do suporte por chamado, para clientes que não querem pagar mensalidades?
       
      Tem clientes que ao pagarem por um site, não querem ficar presos a uma mensalidade, porém, mesmo assim, querem um suporte pós publicação quando precisam de alguma atualização no site. Já tentei fixar valores mensais mais alguns clientes insistem em não querer pagar mensalidades.
       
      Agradeço se puderem contribuir com a informação. 
    • Por Anderson.dsm
      Olá, estou criando um sistema de postagens, ao fazer a postagem eu tenho os seguintes conteudos...
       
      Título
      Descrição
      Imagem
      Publicado em: Dia/mês/ano - hora
      Publicado por: Nome
       
      Mas eu gostaria que quando eu fisse a postagem fosse assim: Dia/mês/ano há 1 minuto, e assim por diante até chegar 24:00 horas, depois disso só mostra-se isso  ->
       
      Publicado em: Dia/mês/ano há 1 dia, 2 dias, 3 dias e por diante até chegar o ano. 1 ano, 2 anos. Etc, alguém pode me explicar como fazer isso. 
       
      Sei apenas publicar para que mostre a hora e data, mas não a contagem como expliquei. Agradeço quem ajudar.
       
      Um exemplo disso que expliquei está no anexo (print) que mandei..

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.