JavaScript AddEventListener - 退格键

标签 javascript html dom-events

您好,我正在尝试根据文本框中的内容来启用/禁用某些按钮。使用“退格”事件时,我想检查每个操作的文本框的内容,以便按钮的启用/禁用状态相应地改变。 “退格”将用于删除文本框中的内容,但根本检测不到“退格”(使用 console.log 进行测试)。

以下是代码(它适用于“c”,但不适用于“退格键”):

document.addEventListener("keypress", function(event) 
{
  if (event.key == "c") 
  {
    console.log("C Pressed");
    document.getElementById("btnConvert").click();
  }

  var convertButton = document.getElementById("btnConvert");
  if (event.key == "Backspace") 
  {
    console.log("Backspace Pressed");
    var textboxContent = document.getElementById("txtFahrenheit").value;
    if (textboxContent.value == "" || textboxContent.value == "-")
    {
      convertButton.disabled = true;
    }
  }
})
<button id="btnConvert" onclick="convertPressed()">Convert</button>
<input id="txtFahrenheit" type="text" onkeypress="return fNumOnly(event);" autofocus />

如何让它检测何时按下“退格键”? 我用其他字母进行了测试,效果很好,也尝试过执行“event.keyCode == 8”,但没有检测到任何结果。

最佳答案

您应该使用 keydown 而不是 keypress 来正确检测 Backspace:

document.addEventListener("keydown", function(event) 
{
  if (event.key == "c") 
  {
    console.log("C Pressed");
    document.getElementById("btnConvert").click();
  }

  var convertButton = document.getElementById("btnConvert");
  if (event.key == "Backspace") 
  {
    console.log("Backspace Pressed");
    var textboxContent = document.getElementById("txtFahrenheit").value;
    if (textboxContent.value == "" || textboxContent.value == "-")
    {
      convertButton.disabled = true;
    }
  }
})
<button id="btnConvert">Convert</button>
<input id="txtFahrenheit" type="text" autofocus />

关于JavaScript AddEventListener - 退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607366/

相关文章:

javascript - window.addEventListener 未调用

javascript - 如何为 JavaScript 文件启用 Resharper 自定义实时模板

javascript - 如何使我的验证更加惯用?

html - @viewport 在 Safari Mobile (ipad 2) 中不起作用

html - 我似乎在某些页面的页脚中丢失了 CSS 代码

javascript - 带有验证和隐藏字段值的提交按钮

javascript - 如何在 java 应用程序仍在编译时显示加载页面?

JavaScript - Disqus 如何处理其包含未定义属性的 "disqus_config"函数?

javascript - 如何让较小的 div 包裹在较大的 div 中,如 css wrap-text 方法?

javascript - 带有 ctrl 键的 Firefox onkeypress