How to create shortcuts with Javascript

Asked

Viewed 545 times

0

The Script that follows below should allow the user to type the ALT+C combination where he would open a prompt and then enter a code to redirect to the page according to the numeric condigo informed. The Script opens the browser prompt window and makes the correct redirection but in turn blocks the other keys, so the user can not type anything. Follow 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;
}
/***************************************************************************************/    
});

1 answer

2


The problem is in Return false if the user type anything other than alt+c and in the scope of the rest of his 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>
<input type="text" />

Browser other questions tagged

You are not signed in. Login or sign up in order to post.