How to create shortcuts with JavaScript

0

The script that follows should allow the user to type the combination ALT + C where it would open a prompt and then enter a code to redirect to the page according to the numerical code informed. Script opens the browser prompt window and makes the correct redirection but in contrast blocks the other keys, so the user can not type anything. Here is the code below.

$(document).on('keydown', function(e) {
    console.log(e.which); // Retorna o número código da tecla
    console.log(e.altKey); // Se o alt foi Pressionado retorna true
    if ((e.altKey) && (e.which === 67)) {// Pesquisar (Alt + P)
     var comando = prompt('Entre com o Comando:');
     var codigo = parseInt(comando);
    }else{return false;}
/***************************************************************** */
/*Converte para Inteiro*/
if (!isNaN(codigo) === true) {

var url = "http://localhost/juridico/dashboard/";

  var meu_array = [
    /* MENU DE CADASTRO*/
    {"cod":201,"arquivo":"clientes"},
    {"cod":202,"arquivo":"fornecedores"},
    {"cod":203,"arquivo":"precos"},
    {"cod":204,"arquivo":"metas"},
    {"cod":205,"arquivo":"usuarios"},
    {"cod":206,"arquivo":"escritorio"},
    {"cod":207,"arquivo":"processos"},
    {"cod":208,"arquivo":"advogados"}
];

var indice = meu_array.indexOf(meu_array.filter(function(obj){
return obj.cod == codigo;
  })[0]);

  if(indice >= 0){
            var destino = meu_array[indice]["arquivo"];
            window.open(url+destino, '_self');

  }else{
    alert('Código Inválido! Tente Novamente precionando ALT+C');
    return false;
  }

}
/*SENÃO FOR NUMÉRICO*/
else{
    alert('Código Inválido! Tente Novamente precionando ALT+C');
    return false;
}
/***************************************************************************************/    
});
    
asked by anonymous 01.06.2018 / 17:10

1 answer

2

The problem is in return false if the user types anything other than alt + c and in the scope of the remainder of their treatment.

$(document).on('keydown', function(e) {
  console.log(e.which); // Retorna o número código da tecla
  console.log(e.altKey); // Se o alt foi Pressionado retorna true
  if ((e.altKey) && (e.which === 67)) { // Pesquisar (Alt + P)
    
    var comando = prompt('Entre com o Comando:');
    var codigo = parseInt(comando);

    /***************************************************************** */
    /*Converte para Inteiro*/
    if (!isNaN(codigo) === true) {

      var url = "http://localhost/juridico/dashboard/";

      var meu_array = [
        /* MENU DE CADASTRO*/
        {
          "cod": 201,
          "arquivo": "clientes"
        },
        {
          "cod": 202,
          "arquivo": "fornecedores"
        },
        {
          "cod": 203,
          "arquivo": "precos"
        },
        {
          "cod": 204,
          "arquivo": "metas"
        },
        {
          "cod": 205,
          "arquivo": "usuarios"
        },
        {
          "cod": 206,
          "arquivo": "escritorio"
        },
        {
          "cod": 207,
          "arquivo": "processos"
        },
        {
          "cod": 208,
          "arquivo": "advogados"
        }
      ];

      var indice = meu_array.indexOf(meu_array.filter(function(obj) {
        return obj.cod == codigo;
      })[0]);

      if (indice >= 0) {
        var destino = meu_array[indice]["arquivo"];
        alert("Redirecionar para: " + url + destino);
        //window.open(url+destino, '_self');

      } else {
        alert('Código Inválido! Tente Novamente precionando ALT+C ');
        return false;
      }

    }
    /*SENÃO FOR NUMÉRICO*/
    else {
      alert('Código Inválido! Tente Novamente precionando ALT+C _');
      return false;
    }
    
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><inputtype="text" />
    
01.06.2018 / 18:12