Search code examples
javascripthtmlkeypress

Keycodes for meta keys[backspace][ctrl][alt] with upper and lower case letters


How to get keycode on keypress?

I know that keydown and keyup will give keycodes for all keys but without considering the case for alphabets and also keypress will give case sensitive keycodes but donot give keycodes for meta keys like backspace, alt, ctrl, enter and shift. is there any method to get all the keycodes including meta and case sensitive keycodes? in javascript


Solution

  • I found a work around for this problem.

    Events execute in this order

    1, Key down
    2, key press
    3, key up

    Steps to solve problem

    1, use two events, key down and key press
    2, cancel event in keydown if keycode is in range of capital letters
    3, execute event in key up

    var cancelKeypress = false;
    $("body").keydown(function(event){
        event = event || window.event;
        var eliminateKeys = [];
        for (var i = 65; i <= 90; i++) { //Capital Letters [A-Z]
            eliminateKeys.push(i);
        }
        eliminateKeys.push(32); // space
        cancelKeypress = eliminateKeys.indexOf(event.keyCode) == -1 ? false : true;
        if (cancelKeypress) {
            //return false;
        }
        else{
            Main.processTrigger(event);// your processtrigger function
        }
    }); 
    $("body").keypress(function(event){
        if (cancelKeypress) {
            Main.processTrigger(event); // your processtrigger function
            console.log(event);
        }
        else{
            //return false;
        }
    });