javascript - 禁用键盘快捷键

标签 javascript html

我有一个“文本区域”。我想制作一个计算器,但在开始之前我需要确保一切正常。

如果我按“1”键,它就会起作用。如果我按“/”键,它将打开“快速搜索”。 当我在 Google Chrome 中时,无法使用“+ 和 -”,我该怎么办?

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>

最佳答案

对于“+”和“-”,请尝试使用键码 187 和 189。 event.preventDefault(); - 应阻止打开“快速搜索”。

<!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>

关于javascript - 禁用键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624937/

相关文章:

javascript - Phaser .js 内存泄漏。如何在 Phaser Canvas 应用程序中正确释放对象?

html - HTML 的宽松标准是伤害还是帮助了互联网

html - 文本不环绕 float 图像。但是图像环绕着 float 的文本

java - 尝试使用部署在 WebSphere 中的 Java REST Web 服务。我收到 SSLHandshakeException

php - 检测网页是否有 javascript 重定向

javascript - CSS 可以自动调整 div 的大小以适应浏览器的其余部分

javascript - 如何管理特定事件指令内的 Controller 范围?

javascript - 为什么我的 Javascript Switch Case 不工作?

javascript - 如何在左侧创建导航栏,在右侧创建容器?

javascript - Bootstrap popover(draggable) 拖动后跳转,怎么办?