怎么做?

我试过了:

var key = event.which || event.keyCode || event.charCode;

if(key == 8) alert('backspace');

但这行不通...

如果我在keypress事件上执行相同的操作,那么它将起作用,但是我不想使用keypress,因为它会在我的输入字段中输出键入的字符。我需要能够控制

我的代码:
  $('#content').bind('input', function(event){

    var text = $(this).val(),
        key = event.which || event.keyCode || event.charCode;

    if(key == 8){
      // here I want to ignore backspace and del
    }

    // here I'm doing my stuff
    var new_text = 'bla bla'+text;
    $(this).val(new_text);
  });

除了我用val()添加的内容外,不应在输入中附加任何字符
实际上应该完全忽略用户的输入,只有按键操作对我很重要

最佳答案

使用.onkeydown并使用return false;取消删除。像这样:

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

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

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

或使用jQuery,因为您在问题中添加了jQuery标签:
jQuery(function($) {
  var input = $('#myInput');
  input.on('keydown', function() {
    var key = event.keyCode || event.charCode;

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

关于javascript - 在 “input”事件上检测到退格键和del?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9906885/

10-09 14:37