检测退格和del“input”事件?

怎么做?

我试过了:

var key = event.which || event.keyCode || event.charCode; if(key == 8) alert('backspace'); 

但它不工作…

如果我在按键事件上也是这样做的,但是我不想使用按键,因为它在input字段中输出了input的字符。 我需要能够控制


我的代码:

  $('#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); }); 

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

使用.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; }); }); 

用jQuery

event.which属性规范了event.keyCode和event.charCode 。 build议观看键盘input的事件。

http://api.jquery.com/event.which/

 jQuery('#input').on('keydown', function(e) { if( e.which == 8 || e.which == 46 ) return false; }); 

你尝试过使用'onkeydown'吗? 这是你正在寻找的事件。

它在input插入之前运行,并允许您取消字符input。

 $('div[contenteditable]').keydown(function(e) { // trap the return key being pressed if (e.keyCode === 13 || e.keyCode === 8) { return false; } });