I made a function to prevent a user from entering anything other than numbers into a field (but allows useful keys like "backspace", "enter", etc ...)
Here a jsFiddle for the example: http://jsfiddle.net/cWHRp/1/
And the javascript code:
$('input').on('keypress', function (e) {
    if (
        // Allow "backspace", "tab", "enter", "escape" and "delete"
        ($.inArray(e.keyCode, [8, 9, 13, 27, 46]) !== -1) ||
        // Allow "shift + decimal point" (= delete on numpad)
        (e.shiftKey === true && e.keyCode ==  110) ||
        // Allow "Ctrl + A" and "Ctrl + C"
        (e.ctrlKey === true && ($.inArray(e.keyCode, [65, 67]) !== -1)) ||
        // Allow "end", "home", "left arrow", "up arrow", "right arrow" and "down arrow"
        (e.keyCode >= 35 && e.keyCode <= 39) ||
        // Allow "shift + classic numbers"
        (e.shiftKey === true && e.keyCode >= 48 && e.keyCode <= 57) ||
        // Allow numbers on numpad
        (e.keyCode >= 96 && e.keyCode <= 105)
    ) {
        return;
    }
    e.preventDefault();
});
It works well, even with shift + number. But I don't know how to detect that capsLock is ON when the user is typing on the keyboard.
Have you any idea to solve this problem please?
Thank you in advance!
 
     
     
    