【问题标题】:Tracking if backspace or delete key is pressed in an input field跟踪输入字段中是否按下退格键或删除键
【发布时间】:2015-10-27 14:55:16
【问题描述】:

我想知道如何跟踪用户是否在输入字段中按下退格键或删除键。之后,每次按下这些按钮时,我都会添加一个名为 count 的变量。我目前有这个代码,但它似乎不起作用;任何帮助都非常感谢,谢谢。

var Count = 0;

var input = document.getElementById('display');

input.onkeydown = function() {
    var key = event.keyCode || event.charCode;

    if( key == 8 || key == 46 )
        Count++;
        return false;
};

【问题讨论】:

  • 你总是返回false。将条件包装在{}jsfiddle.net/a15tfq9o
  • 事实上总是包装条件,这样你就不会遇到这样的问题。
  • 如果使用这些键,您是否试图阻止输入?不清楚你的目标是什么
  • 我实际上是在尝试记录这些键被按下的次数,谢谢。

标签: javascript key keydown backspace


【解决方案1】:

条件或循环等内的多行需要用大括号括起来:

if( key == 8 || key == 46 )
{
    Count++;
    return false;
}

您还需要添加默认的return true 作为最后一行,以区分您是否也输入了 if。

【讨论】:

    【解决方案2】:

    试试这个方法:

    var count = 0;
    
    var input = document.getElementById('display');
    
    input.onkeydown = function() {
        var key = event.keyCode || event.charCode;
    
        if( key !== 8 && key !== 46 )
            return true;
    
        count++;
    };
    
    1. 不要以大写字母开头变量名,除非它们是您要实例化的对象原型,即。 var count = new Count( ),您之前在其中定义了 Count 对象原型

    2. 始终使用严格的比较器,例如 ===!==,不要只使用 ==!=

    3. 首先检查是否为负,如果条件不匹配则返回 true。然后执行你的代码,在你的情况下count++

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2016-06-04
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多