Goks
Goks

Reputation: 9

Disable Keyboard Shotcuts

I have a "textarea". I want to make a calculator but before starting I need to be sure that everything is working well.

If I press the '1' key it works. If I press the '/' key it opens 'fast search'. When I am in Google Chrome I can't use the "+ and - " what can I do?

function doc_keyUp(e) {
  if (e.altKey && e.keyCode == 13 || e.keyCode == 49) {
    document.getElementById("area").value += "1";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 50) {
    document.getElementById("area").value += "2";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 51) {
    document.getElementById("area").value += "3";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 52) {
    document.getElementById("area").value += "4";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 53) {
    document.getElementById("area").value += "5";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 54) {
    document.getElementById("area").value += "6";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 55) {
    document.getElementById("area").value += "7";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 56) {
    document.getElementById("area").value += "8";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 57) {
    document.getElementById("area").value += "9";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 48) {
    document.getElementById("area").value += "0";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 61) {
    document.getElementById("area").value += "+";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 191) {
    document.getElementById("area").value += "/";
  }
  if (e.altKey && e.keyCode == 13 || e.keyCode == 173) {
    document.getElementById("area").value += "-";
    $('#area').val(textVal.substring(0, texVal.length = 1));
  }
}

document.addEventListener('keyup', doc_keyUp, false);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="area" onKeyPress="return validateKey(event)"></textarea>

Upvotes: 0

Views: 114

Answers (1)

Aleks
Aleks

Reputation: 26

For "+" and "-" try to use key codes 187 and 189. event.preventDefault(); - should prevent open 'fast search'.

<!DOCTYPE html>
<html>
<body>

<textarea id="area"></textarea>
<script>


function doc_keyUp(e) {
 if (e.altKey && e.keyCode == 13 || e.keyCode == 49) {
    document.getElementById("area").value += "1";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 50) {
    document.getElementById("area").value += "2";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 51) {
    document.getElementById("area").value += "3";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 52) {
    document.getElementById("area").value += "4";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 53) {
    document.getElementById("area").value += "5";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 54) {
    document.getElementById("area").value += "6";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 55) {
    document.getElementById("area").value += "7";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 56) {
    document.getElementById("area").value += "8";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 57) {
    document.getElementById("area").value += "9";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 48) {
    document.getElementById("area").value += "0";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 187) {
    document.getElementById("area").value += "+";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 191) {
    document.getElementById("area").value += "/";
   }
   if (e.altKey && e.keyCode == 13 || e.keyCode == 189) {
    document.getElementById("area").value += "-";
   }
e.preventDefault();
}
document.addEventListener('keyup', doc_keyUp, false);

</script>

</body>
</html>

Upvotes: 1

Related Questions