当我从键盘上的字母上面的数字按8,event.which返回56,但是当我按下侧面给出的数字键盘上的8,它返回104('h'ascii)。我这样做:jQuery:event.which返回不同的代码时,从数字键盘按下一个数字,当从数字键上面按字母时
var keyPressed = event.which;
String.fromCharCode(keyPressed); // returns 8 from keyboard, 'h' from keypad
我这样做的处理程序中的的keydown事件。现在,我知道键盘上的每个键都有一个不同的keyCode,并且可能是event.which返回numpad 8的keyCode,这恰好与ascii'h'一致。我只想要返回8个,不管从哪里输入。
此外,我不能将上述代码绑定到keyPress事件处理程序,因为它不捕获IE中的删除,制表符等。
谢谢,但我希望8返回时,我按8从数字键盘。我怎样才能做到这一点? – Daud
我想你必须检查数字键盘上的8位密钥并返回所需的“真实”值。 if(e.keyCode == 56)return 8;'EDIT:'if(e.keyCode> = 48 && e.keycode <= 57)return parseInt(e.keyCode-48);' – OptimusCrime