Ir para conteúdo

Arquivado

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

RafaCordL

Preencher campo com apenas números específicos

Recommended Posts

Então gente, o que ocorre...

Eu tenho uma função que faz com que eu escolha quais números eu posso usar em determinado campo, exemplo:

O campo 62 (no meu sistema) só pode receber os números "1", "2", "3", "4", "5", "6", "7", "8", "9" ou "10".

(Existem campos que aceitam "1", "2" ou "9", então por isso a excecao abaixo)

Dai ela funciona assim:

 

JS:

function limitaDigitos(obj, maximo, excecao, zero){
    if(!zero){
        if(!(obj.value > maximo ^ obj.value != excecao) || obj.value <= 0){
            obj.value = '';
        }
    }else{
        if(!(obj.value > maximo ^ obj.value != excecao)){
            obj.value = '';
        }   
    }
}

HTML:

<input type="text" class="opcao" id="tp_entrada" Onkeyup="limitaDigitos(this,9,10,false);" required>

Ai eu tenho em um desses campos a seguinte característica: Se o Campo 32 = 6 o Campo 62 (do exemplo que mostrei), só pode ser preenchido com "3" ou "4".

Dai comecei a fazer a função

function campos_32_62(){
    $("#tp_entrada").keyup(function(){
        var num = 0;
        num = $("#tp_entrada").val();
        if(num == 6){
            
        }        
    });
}

Mas... Como fazer com que nesse condição ele só receba o "3" ou "4", se tem a função "limitaDigitos"?

 

Essa é a questão...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia RafaCordL.

Tenta criar uma variavel global dentro do if na sua função campo_32_62, e quando executar a função limitaDigitos você verifica esta variável.

 

função limitaDigitos();

function limitaDigitos(obj, maximo, excecao, zero){
	
    if(obj=='id_campo_62' && varGlobal=='ativo'){
    	maximo = 3;
        excecao = 4;
    }
    
    if(!zero){
        if(!(obj.value > maximo ^ obj.value != excecao) || obj.value <= 0){
            obj.value = '';
        }
    }else{
        if(!(obj.value > maximo ^ obj.value != excecao)){
            obj.value = '';
        }   
    }
}

função campos_32_62:

function campos_32_62(){
    $("#tp_entrada").keyup(function(){
        var num = 0;
        num = $("#tp_entrada").val();
        if(num == 6){
            varGlobal='ativo';
        }else{
            varGlobal='';
        }
    });
}

Não consegui simular a situação que passou, mas se entendi errado por favor me corrija.
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

também pode-se fazer um

switch...case, para ele pegar o campo, e caso seja determinado campo, aceitar apenas o que deseja

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.