2011-07-29 25 views
11

Sự kiện nhấn phím jQuery cho FireFox cho phép mã hóa keyCode thuộc tính cho đối tượng sự kiện sau khi chuyển đổi String.fromCharCode(e.keyCode) nhưng hoạt động hoàn hảo trong Chrome.jquery nhấn đối tượng sự kiện keyCode cho vấn đề firefox?

Tiếp theo là các mã javascript:

<!-- #booter and #text are ids of html element textarea --> 

<script type="text/javascript">   
    $(function(){ 
     $('#booter').keypress(function(e){    
      var input = $(this).val() + String.fromCharCode(e.keyCode); 
      $('#text').focus().val(input); 
      return false; 
     }); 
    }); 
</script> 

Trả lời

19

Bạn nên sử dụng e.charCode trong Firefox.

$("#booter").keypress(function(e){ 
    var code = e.charCode || e.keyCode; 
    var input = $(this).val() + String.fromCharCode(code); 
    $('#text').focus().val(input); 
    return false; 
}); 

Hãy thử nó ở đây:

http://jsfiddle.net/REJ4t/

PS Nếu bạn đang tự hỏi tại sao tất cả đống lộn xộn này: http://www.quirksmode.org/js/keys.html

+0

Làm việc như một sự quyến rũ ... Cảm ơn :) –

+1

e.charCode || e.keyCode <= Điều này là hoàn hảo :) – Jasmeen

+0

Chỉ cần lưu ý rằng theo MDN e.keyCode và e.charCode và e.which không được chấp nhận. Tôi đã hơi ngạc nhiên bởi điều đó vì sự thay thế, gọi là e.code không có sự hỗ trợ thích hợp. Có vẻ như chỉ có tùy chọn bây giờ là e.key có hỗ trợ IE9 – Mattijs

1

Nó hoạt động cho cả IE & FF.

$(document).ready(function(){ 

     $('#txtEntry').keypress(function (e) { 

      $('#lnkValidEdit').focus(); 
      return false; 

     }); 
Các vấn đề liên quan