Space bar keyCode(32) not working on Mozilla Firefox

Fi3n1k picture Fi3n1k · Dec 25, 2012 · Viewed 28.1k times · Source

Enter keyCode(13) works fine on all browsers.

Space bar keyCode(32) I tested on Chrome works fine but not responding on Firefox. I used the following code:

<script type="text/javascript" >
    function enterPressed(evn) {
        var e_id = $('e_id').value;
        var e_fname = $('e_fname').value;
        var e_role = $('e_role').value;

        if (window.event && window.event.keyCode == 13) {
            Monitor.Order.assign(e_id, e_fname, e_role);
        } else if (evn && evn.keyCode == 13) {
            Monitor.Order.assign(e_id, e_fname, e_role);
        } else if (evn && evn.keyCode == 32) {
            Monitor.Order.updateStatus('COOKED');
        }                       
    }
    document.onkeypress = enterPressed;     
</script>

Why is this not working in Firefox when it works in Chrome?

Answer

Boris Zbarsky picture Boris Zbarsky · Dec 26, 2012

Space is a printable character, so the keypress event will have the charCode set to the character that it corresponds to and the keyCode won't be set on the keypress event in Firefox.

In general, you want to use charCode for printable things in keypress, keyCode in keyup/keydown.