Ir para conteúdo

POWERED BY:

Arquivado

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

manolegal

Problema máscara de entrada

Recommended Posts

Bom dia

Tenho uma campo para entrada de valor tipo hora. Quero possibilitar a entrada tipo 01:30 ou 1:30, dependendo de como o usuário digitar.

Implementei o seguinte código:

$("#qdade_horas_hor").keydown(function(){
    try {
        $("#qdade_horas_hor").unmask();
    } catch (e) {}

    var tamanho = $("#qdade_horas_hor").val().length;

    if(tamanho < 3){
        $("#qdade_horas_hor").mask("0:00");
    } else {
        $("#qdade_horas_hor").mask("00:00");
    }                   
});

Ao digitar os valores no campo, a máscara está funcionando corretamente.

O problema é que ao digitar 1:30, após sair do campo, é assumido o valor de 13:0 ao invés de permanecer 1:30.

Como faço para resolver este problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se não me engano, o jquery.mask aceita opcionais assim:

$("#qdade_horas_hor").mask("0?0:00");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo retorno.

Tentei mas não consegui:

$("#qdade_horas_hor").mask("0?0:00");

1:30 retorna 1?3:0.

$("#qdade_horas_hor").mask("0?:00");

1:30 retorna 1?:30, porém não consigo inserir 13:00.

$("#qdade_horas_hor").keydown(function(){
    try {
        $("#qdade_horas_hor").unmask();
    } catch (e) {}

    var tamanho = $("#qdade_horas_hor").val().length;

    if(tamanho < 3){
        $("#qdade_horas_hor").mask("0?:00");
    } else {
        $("#qdade_horas_hor").mask("00:00");
    }                   
});  

A máscara para 1:30 funciona certo (1?:30), porém ao sair do campo assume o valor de 13:0.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$.mask.definitions['H'] = "[0-1]";
			$.mask.definitions['h'] = "[0-9]";
			$.mask.definitions['M'] = "[0-5]";
			$.mask.definitions['m'] = "[0-9]";
			//aplicando a mascara na tag com id horarioinicio-evento
			$("#qdade_horas_hor").mask("Hh:Mm");

tenta isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Laerte. Tentei da seguinte forma, porém não funcionou.

$.mask.definitions['H'] = "[0-1]";
    $.mask.definitions['h'] = "[0-9]";
    $.mask.definitions['M'] = "[0-5]";
    $.mask.definitions['m'] = "[0-9]";

    $("#qdade_horas_hor").mask("Hh:Mm"); 

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.