2012-12-25 22 views
5

Geben Sie keyCode(13) ein, das in allen Browsern funktioniert.Leertaste keyCode (32) funktioniert nicht unter Mozilla Firefox

Leertaste keyCode(32) Ich getestet auf Chrome funktioniert gut, aber nicht auf Firefox reagieren. Ich habe den folgenden Code verwendet:

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

Warum funktioniert das nicht in Firefox, wenn es in Chrome funktioniert?

+0

haben Sie mit versucht. 'evn = evn || Fenster.Event'? – vusan

+0

Überprüfen Sie das: http://stackoverflow.com/questions/7051112/event-which-doesnt-workin-in-firefox – Disa

+0

Nein, aber ich weiß nicht wie? – Fi3n1k

Antwort

0

diesen Code versuchen, es wird gut funktionieren ....

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 ist dein Problem gelöst –

5

Raum ein druckbares Zeichen ist, so dass die keypress Veranstaltung wird den charCode Satz auf den Charakter hat, dass es entspricht und die keyCode wird nicht auf das Tastendruckereignis in Firefox eingestellt werden.

Im Allgemeinen möchten Sie charCode für druckbare Dinge in Tastendruck, keyCode in keyup/keydown verwenden.