none
Pular determinado controle da tela quando pressionado TAB RRS feed

  • Pergunta

  • Fala galera. 

    Como todos sabemos quando pressionamos TAB no browser a seleção vai de input para input ou para algum link ou button. 

    No meu caso eu não quero que ele selecione o Button. 

    Alguém sabe uma função jquery ou javascript para fazer isso? 

    Pesquisei e não consegui encontrar nada. 

    Abraço.

    segunda-feira, 6 de outubro de 2014 14:35

Respostas

  • Código de solução:

     $(document).keydown(function (e) {
            if (e.which == 9) {
                var ex = window.event;
                var teste = ex.target || ex.srcElement;
                if (teste.id == "nomeEmpresasParametro_I") {
                    valorParametro.SetFocus();
                }
            }
        });

    • Marcado como Resposta Fernando Mamprin segunda-feira, 6 de outubro de 2014 18:29
    segunda-feira, 6 de outubro de 2014 18:29

Todas as Respostas

  • Você pode verificar o tipo de input com typeof (JavaScript):

    if(typeof(myObj) == "button"){ alert("Botao"); }else{
    //Aqui você pressionaria o TAB alert("Não é um botao");

    }


    Lembrando que você terá de verificar a tecla  TAB com os keycode (JavaScript)

    Se te ajudou marca como resposta.

    • Editado Mr. GMSOFT segunda-feira, 6 de outubro de 2014 14:50
    segunda-feira, 6 de outubro de 2014 14:50
  • Você pode definir um index para cada controle.

    Ex:

    Controle 1 vai receber o index 1;

    Controle 2 vai receber o index 2;

    Assim quando pressionar o TAB ele pula de controle em controle como definido na ordem.

    segunda-feira, 6 de outubro de 2014 14:56
  • Você pode verificar o tipo de input com typeof (JavaScript):

    if(typeof(myObj) == "button"){ alert("Botao"); }else{
    //Aqui você pressionaria o TAB alert("Não é um botao");

    }


    Lembrando que você terá de verificar a tecla  TAB com os keycode (JavaScript)

    Se te ajudou marca como resposta.

    Valeu pela sua resposta Mr. GMSOFT. 

    Bom tentei utilizar o typeof, mas não obtive sucesso, segundo várias explicações que vi na web ele retorna tipos como (number, string, boolean, object, undefined): http://www.w3schools.com/js/js_datatypes.asp

    Utilizando sua ideia lembre que em jquery ou javascript consigo recuperar os controles da tela, com isso utilizei o código que funcionou perfeitamente.

    $(document).keydown(function (e) {
         // Valida tecla tab        
         if (e.which == 9) {
             var ex = window.event;
             var teste = ex.target || ex.srcElement;
             
             // Valida se o id é o do botão desejado
             if (teste.id == "nomeEmpresasParametro_I") {
                 valorParametro.SetFocus();
             }
          }
    });

    Obrigado pela ajuda.

    Abraço.

    segunda-feira, 6 de outubro de 2014 18:25
  • Você pode definir um index para cada controle.

    Ex:

    Controle 1 vai receber o index 1;

    Controle 2 vai receber o index 2;

    Assim quando pressionar o TAB ele pula de controle em controle como definido na ordem.

    Luiz Lopes Ziul, ao meu ver essa sua solução não é uma boa prática, como disse para o amigo Mr. GMSOFT, com jquery ou javascript conseguimos recuperar todos os controles da tela. 

    Digo isso porque todos os controles da tela normalmente tem um ID definido, justamente para diferenciar os controles. 

    Veja o código que postei como resposta. 

    Abraço e obrigado pelo retorno.

    segunda-feira, 6 de outubro de 2014 18:28
  • Código de solução:

     $(document).keydown(function (e) {
            if (e.which == 9) {
                var ex = window.event;
                var teste = ex.target || ex.srcElement;
                if (teste.id == "nomeEmpresasParametro_I") {
                    valorParametro.SetFocus();
                }
            }
        });

    • Marcado como Resposta Fernando Mamprin segunda-feira, 6 de outubro de 2014 18:29
    segunda-feira, 6 de outubro de 2014 18:29