首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript AddEventListener - Backspace

JavaScript AddEventListener - Backspace
EN

Stack Overflow用户
提问于 2018-12-04 07:02:04
回答 2查看 2.1K关注 0票数 2

你好,我正在尝试根据文本框中的内容获取某些按钮来启用/禁用。在使用“backspace”事件时,我希望检查textbox中每个操作的内容,这样启用/禁用按钮的状态就会相应改变。'backspace‘将用于删除文本框中的内容,但是根本没有检测到'backspace’(使用console.log测试)。

下面是代码(它适用于'c‘,但不适用于'backspace'):

代码语言:javascript
复制
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;
    }
  }
})
代码语言:javascript
复制
<button id="btnConvert" onclick="convertPressed()">Convert</button>
<input id="txtFahrenheit" type="text" onkeypress="return fNumOnly(event);" autofocus />

如何让它检测'backspace‘按下的时间?我用其他字母进行了测试,它运行得很好,也尝试了执行“event.keyCode == 8”,但是没有检测到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-04 07:06:20

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

代码语言:javascript
复制
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;
    }
  }
})
代码语言:javascript
复制
<button id="btnConvert">Convert</button>
<input id="txtFahrenheit" type="text" autofocus />

票数 3
EN

Stack Overflow用户

发布于 2018-12-04 07:18:25

代码语言:javascript
复制
$(document).keyup(function(e)
{
    if(e.key == "c")
    {
        alert("C Pressed");
        document.getElementById("btnConvert").click();
    }
    var convertButton = document.getElementById("btnConvert");

    if(e.keyCode == 8)
    {
        alert('backspace trapped');
        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" autofocus />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53607366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档