2012-12-25 20 views
5

Wpisz keyCode(13) działa dobrze we wszystkich przeglądarkach.Klawisz spacji klucz (32) nie działa w przeglądarce Mozilla Firefox

Spacja na pasku keyCode(32) Testowałem w Chrome działa dobrze, ale nie odpowiada na Firefoksa. Użyłem następującego kodu:

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

Dlaczego to nie działa w przeglądarce Firefox, gdy działa ona w Chrome?

+0

czy próbowałeś. 'evn = evn || window.event'? – vusan

+0

Sprawdź, czy: http://stackoverflow.com/questions/7051112/event-which-doesnt-workin-in-firefox – Disa

+0

Nie, ale nie wiem jak? – Fi3n1k

Odpowiedz

0

wypróbować ten kod będzie działać dobrze ....

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

hej mate to twój problem rozwiązany –

5

Space jest do druku znaków, więc zdarzenie naciśnięcie będzie miał charCode ustawiane na znak, że to odpowiada i nie będzie keyCode być ustawione na zdarzenie keypress w przeglądarce Firefox.

Ogólnie rzecz biorąc, chcesz użyć charCode do drukowania rzeczy w naciśnięciu klawisza, keyCode w keyup/keydown.

Powiązane problemy