2012-12-25 7 views
5

Entrez keyCode(13) Fonctionne correctement sur tous les navigateurs.Espace bar keyCode (32) ne fonctionne pas sur Mozilla Firefox

Barre d'espace keyCode(32) J'ai testé sur Chrome fonctionne très bien mais ne répond pas sur Firefox. J'ai utilisé le code suivant:

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

Pourquoi ce ne fonctionne pas dans Firefox quand il fonctionne dans Chrome?

+0

avez-vous essayé avec. 'evn = evn || window.event'? – vusan

+0

Vérifiez que: http://stackoverflow.com/questions/7051112/event-which-doesnt-workin-in-firefox – Disa

+0

Non mais je ne sais pas comment? – Fi3n1k

Répondre

0

essayer ce code, il fonctionnera très bien ....

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 est votre prob résolu –

5

L'espace est un caractère imprimable, de sorte que l'événement KeyPress aura le charCode ensemble au caractère qui correspond à et la keyCode ne sera pas être défini sur l'événement keypress dans Firefox.

En général, vous souhaitez utiliser charCode pour les éléments imprimables dans keypress, keyCode dans keyup/keydown.

Questions connexes