我必须使用alphabet keys
跟踪backspace key
和JavaScript
。
我使用下面编写的代码来跟踪每个按键,但不幸的是,当我在backspace button
中按IE
时,我对此问题一无所知。
$('#crossword').delegate('.grid_input_holder','keypress',function(event){
alert('keycode : '+event.keycode+' which : '+$(this).val( String.fromCharCode(event.which));
});
提前致谢
答案 0 :(得分:4)
如果你想支持IE并且使用特殊密钥(例如delete
和backspace
),我建议改为使用keydown
/ keyup
。
特殊键
资源管理器不会触发按键 删除,结束,输入,转义事件, 功能键,主页,插入, pageUp / Down和tab。
如果您需要检测这些密钥,请帮忙并搜索其keyCode onkeydown / up ,并忽略onkeypress和charCode。
您可以阅读有关 Detecting keystrokes (Quirksmode) 的跨浏览器问题的更多信息。
OR
如果我们在文本框中已经有几个字符,退格键代码将采用值= 83 。
如果文本框中没有任何字符,并且我们正在尝试按退格键,则密钥代码将为= 8 。
答案 1 :(得分:2)
如果您想支持IE并且使用特殊密钥(例如delete
和backspace
),我建议您使用keydown/keyup
。
答案 2 :(得分:2)
使用IE10时出现问题。因为在IE版本中< 9给出
event.which == undefined || event.which == zero
按下特殊处理键时,如 Backspace,DEL,INS,HOME,导航键,回车等 因此,我们可以轻松识别何时按下特殊处理字符并且可以单独处理。
但在 IE10 。 event.which 没有为特殊处理键提供未定义或零,而是提供键码.... 令人惊讶的是,它为Dot(。)和Delete,单引号(')和右箭头等提供相同的密钥代码。
因此,当使用按下特殊处理键时,我们无法准确识别IE10 event.which也不是event.keycode 。
在这种情况下......使用
event.charCode == 0
用于识别 IE10
中的特殊处理字符相信我的朋友,它为我节省了一个多星期的努力。