JS - 退格检测不起作用

时间:2015-03-24 01:58:47

标签: javascript jquery

我有一些代码是一个基本的突出显示系统,当我尝试捕捉退格时,我无法捕捉它们,即使我使用onkeydown和keypress。

我正在使用jQuery来获取事件并注册函数调用。这是我的代码:

if (e.charCode == 8 || e.charCode == 46 || e.charCode == 35) {
                if (errCount) {
                    errCount--;
                }
                backLetter(index);
                index--;
            }

2 个答案:

答案 0 :(得分:1)

使用.which,与e.which == 8

一样

https://jsfiddle.net/skdreow5/1/

var xTriggered = 0;
$( "#target" ).keydown(function( event ) {
  if ( event.which == 13 ) {
   event.preventDefault();
  }
  if ( event.which == 8 ||
      event.which == 46 ||
      event.which == 35 ) {
      console.log("backspaced: " + event.which);   
  }
  xTriggered++;
  var msg = "Handler for .keydown() called " + xTriggered + " time(s).";
  console.log(msg);
});

答案 1 :(得分:0)

<强> DEMO

Regarding e.charCode

  

此功能不符合标准,不符合标准。不要   在面向Web的生产站点上使用它:它不会适用于所有人   用户。两者之间可能存在很大的不兼容性   实现和行为可能在未来发生变化。

使用e.whiche.keyCode来捕获退格。有些浏览器支持e.which,有些支持e.keyCode。作为jQuery的一部分,他们已在事件对象中规范化e.which。如果您使用的是jQuery,请使用e.which

$(function() {
  $("input").keyup(function(e) {
   if(e.keyCode==8) {
     alert("Backspace pressed");
   } 
  });
});