2012-12-25 11 views
5

Immettere keyCode(13) funziona correttamente su tutti i browser.La barra spaziatrice keyCode (32) non funziona su Mozilla Firefox

Barra spaziatrice keyCode(32) Testato su Chrome funziona bene ma non risponde su Firefox. Ho utilizzato il seguente codice:

<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> 

Perché questo non funziona in Firefox quando funziona in Chrome?

+0

hai provato con. 'evn = evn || window.event'? – vusan

+0

Verifica che: http://stackoverflow.com/questions/7051112/event-which-doesnt-workin-in-firefox – Disa

+0

No ma non so come? – Fi3n1k

risposta

0

provare questo codice che funzionerà bene ....

function enterPressed(evn) { 
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x 

     var e_id = $('e_id').value; 
     var e_fname = $('e_fname').value; 
     var e_role = $('e_role').value; 

     if (evn.which == 13) { 
      Monitor.Order.assign(e_id, e_fname, e_role); 
     } else if (evn.which == 13) { 
      Monitor.Order.assign(e_id, e_fname, e_role); 
     } else if (evn.which == 32) { 
      Monitor.Order.updateStatus('COOKED'); 
     }     
    } 

    else{ 
      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; 
+0

hey mate è il tuo problema risolto –

5

Lo spazio è un carattere stampabile, quindi l'evento keypress avrà la charCode set per il carattere che corrisponde e il keyCode no essere impostato sull'evento keypress in Firefox.

In generale, si desidera utilizzare charCode per le cose stampabili in keypress, keyCode in keyup/keydown.

Problemi correlati