Ir para conteúdo

POWERED BY:

Arquivado

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

brunosk2

Captura de teclas IE

Recommended Posts

Bom dia, preciso que quando o usuario pressionar a tecla backspace seja feita uma validação e se o campo estiver vazio um dropdown desapareça, até ai beleza. O problema é que o IE não "captura" a tecla backspace, com todas as outras teclas ele retorna um numero, mas no backspace vem vazio, esse é o código que estou usando:

$(".Header .Busca").keypress(function (e) {
       $(".DropDownBusca").show();
       //Captura a tecla digitada pelo usuario
       var tecla = e.which;
       console.log(tecla);
       //Se tecla for delete
       if (parseInt(tecla) == 8) {
           //se a tecla for backspace faz a verificação para esconder o dropdown
           setTimeout(function () {
               if ($(".Header .Busca .TextBox").val() == "Digite sua busca..." || $(".Header .Busca .TextBox").val() == "") {
                   $(".DropDownBusca").delay("1000").hide();
               }
           }, 100);

       }
   });

Compartilhar este post


Link para o post
Compartilhar em outros sites

No console aparece null mesmo?

 

Não é recomendado usar parseInt sem definir o segundo argumento, referente ao sistema númerico a ser usado, neste caso, deve ser o decimal, logo você deve usar da seguinte forma:

if (parseInt(tecla, 10) == 8) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

O IE guarda o evento atual em uma propriedade de window, mas não o envia como parâmetro do listener do evento.

Faça assim:

e = e || window.event;
var tecla = e.charCode || e.keyCode || e.which;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tentei dos dois jeitos, mas não funcionou.

Ele não retorna null, estou usando um console.log() pra imprimir o numero da tecla, mas no IE e no Chrome, é como se a tecla backspace não tivesse numero, parece que o console.log() não é executado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe o console de erros.

No IE não existe objeto "console".

O no console do IE é mostrado o console.log() com o numero da tecla sim, apenas o backspace não retorna nada (não retorna nulo, é como se eu não tivesse clicado).

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.