2011-07-29 9 views
11

FireFoxのjQuery keypressイベントは、String.fromCharCode(e.keyCode)の変換後にイベントオブジェクト の暗号化keyCodeプロパティを提供しますが、Chromeでは完全に機能します。続きjquery keypressイベントオブジェクトkeyCode firefoxの問題?

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

答えて

19

あなたはFirefoxでe.charCodeを使用する必要があります。

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

ここでそれを試してみてください。

http://jsfiddle.net/REJ4t/

PS あなたは、なぜすべてのこの混乱を迷っている場合:http://www.quirksmode.org/js/keys.html

+0

魅力的なように働いて...ありがとう:) –

+1

e.charCode || e.keyCode <=これは完璧です:) – Jasmeen

+0

MDN e.keyCodeとe.charCodeとe.whichは推奨されていません。 e.codeと呼ばれる交換が適切なサポートを持っていないので、私はそれに驚いていました。それは今IE9をサポートしているe.keyだけです – Mattijs

1

それはIE & FFの両方で動作します。

$(document).ready(function(){ 

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

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

     }); 
関連する問題