Javascript onkeydown百分比或五个数字

Javascript onkeydown百分比或五个数字,javascript,numbers,onkeydown,Javascript,Numbers,Onkeydown,有没有办法确定用户是按了百分比键还是按了5?它在FireFox中具有相同的键码。您可以检查事件对象提供的修改器键事件。shiftKey用于您的特定用例。此外,还有事件的event.altKey、event.ctrlKey和event.metaKey(适用于windows中的windows键和MAC键盘中的命令键)属性。 在代码示例中,您必须在keyCode处理程序内执行检查: var NUMBER_FIVE = 53; element.onkeydown = function (event) {

有没有办法确定用户是按了百分比键还是按了5?它在FireFox中具有相同的键码。

您可以检查事件对象提供的修改器键<代码>事件。shiftKey用于您的特定用例。此外,还有事件的
event.altKey
event.ctrlKey
event.metaKey
(适用于windows中的windows键和MAC键盘中的命令键)属性。 在代码示例中,您必须在keyCode处理程序内执行检查:

var NUMBER_FIVE = 53;
element.onkeydown = function (event) {
    if (event.keyCode == NUMBER_FIVE) {
        if (event.shiftKey) {
            // '%' handler
        } else {
            // '5' handler
        }
    }
};
此外,当使用
event.keyCode
时,您正在处理用户在键盘上按下的内容。如果要检查特定的ASCII字符,则可以改用
event.charCode
,因为此事件属性告诉您用户输入的字符,而不是告诉您用户在键盘上按的字符

检查shiftKey值:


如果使用
向下键
,则5和%是相同的键代码。事件对象还有一个布尔属性,它将告诉您用户是否正在按住shift键

document.onkeydown = function (e) {
    if (e.keyCode === 53) {
        if (e.shiftKey) {
            // they pressed %
        } else {
            // they pressed 5
        }
    }
};
如果要使用
按键
,则它们是两种不同的键码:

document.onkeypress = function (e) {
    if (e.keyCode === 53) {
        // they pressed 5
    }

    if (e.keyCode === 37) {
        // they pressed %
    }
};

用于测试键码。

我测试键码和输入字符的值

$(document).on({
 keypress: function(event){
   var charCode = (event.which) ? event.which : event.keyCode;
   var mFive = String.fromCharCode(event.which); 
   if ((charCode == 53) && (mFive === "5")){
       return true;
   }else if ((charCode == 53) && (mFive !== "5")){
       return false;
   }
 });

非常感谢。我不知道。我要去看看。这很有帮助,但我正在和另一个问题斗争。。。这是Alt Gr+4(两次)或这个字符。@user1729203您必须处理event.keyCode为100(num lock)和event.altKey为true。
$(document).on({
 keypress: function(event){
   var charCode = (event.which) ? event.which : event.keyCode;
   var mFive = String.fromCharCode(event.which); 
   if ((charCode == 53) && (mFive === "5")){
       return true;
   }else if ((charCode == 53) && (mFive !== "5")){
       return false;
   }
 });