2011-07-29 26 views
11

jQuery keypress olayı, FireFox için String.fromCharCode(e.keyCode) dönüşümünden sonra olay nesnesine şifrelenmiş keyCode özelliğini verir, ancak Chrome'da mükemmel çalışır.jquery keypress event object keyCode firefox problemi için?

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

cevap

19

Sen Firefox'ta e.charCode kullanmalıdır: Aşağıdaki

javascript kodudur.

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

Burada deneyin:

http://jsfiddle.net/REJ4t/

PS Eğer merak ediyorsanız neden bunca karmaşa: http://www.quirksmode.org/js/keys.html Hem IE & FF için çalışır

+0

Bir çekicilik gibi çalıştık ... Teşekkürler :) –

+1

e.charCode || e.keyCode <= Bu Mükemmel :) – Jasmeen

+0

Sadece MDN e.keyCode ve e.charCode ve e.which’e göre kullanımdan kaldırıldığını unutmayın. Bu e.kodu denilen yedeklemenin uygun desteği olmadığı için biraz şaşırdım. Sadece seçenek artık IE9 desteği olan e.key gibi görünüyor – Mattijs

1

.

$(document).ready(function(){ 

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

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

     });