检测退格和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; } });