2012-12-25 24 views
5

輸入keyCode(13)在所有瀏覽器上均正常工作。空格鍵keyCode(32)無法在Mozilla Firefox上工作

空格鍵keyCode(32)我在Chrome上測試的效果很好,但在Firefox上沒有響應。我使用了以下代碼:

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

爲什麼在Chrome瀏覽器中它不起作用?

+0

你有沒有試過。 'evn = evn || window.event'? – vusan

+0

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

+0

不,但我不知道如何? – Fi3n1k

回答

0

試試這個代碼,這將正常工作....

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

嘿夥伴是你的問題解決 –

5

空間是可打印字符,因此按鍵事件將有charCode設置爲它對應的字符和keyCode不會在Firefox中設置按鍵事件。

通常情況下,您希望在keypress/keydown中使用charCode來打印可按鍵內容,keyCode

相關問題