2012-05-11 17 views
1

私は、自動的に特定の文字数た後、第2行にジャンプしようとしています。私はそうするためにjqueryでkeypress関数を使用しています。ここに私のコードです:jqueryのキー押下機能火災異なるブラウザで

<html> 
<head> 
    <script type="text/javascript" src="http://inet.website-name.com/jquery/jquery-1.7.min.js"></script> 
</head> 
<body> 
    <input id="input1"></input> 
    <br /> 
    <input id="input2"></input> 
    <script type="text/javascript"> 
     $('#input1').keypress(function (e) { 
      var tval = $('#input1').val(); 
      if (tval.length >= 5 && e.which !== 0 && e.charCode !== 0) { 
       $('#input2').focus(); 
      } 
     })  
    </script> 
</body> 
</html> 

これは第六文字が2番目のボックスに変えるフォーカスが続く最初のボックスに入力されたクロムで実行されたとき、私は遭遇しています問題があります。これがInternet Explorerで実行されると、最初にフォーカスが2番目のボックスに変更され、6番目の文字が入力されます。私は両方のブラウザで同じ動作をする必要があります。

私はkeydownイベントイベントを使用してみました、それは一貫してフォーカスを変更するという観点で働いていたが、焦点は、私はバックスペース、矢印キーや他の特殊キーを使用しても変化するであろう。
ありがとうございます。

+0

に変更されたことに注意してくださいあなたは)e.preventDefaultを(表示されません。フォーカスを次のコントロールに設定する前に? – Sunny

+0

@ 3nigma - 私の間違い - それはe.preventDefault()です。私のコメントを編集しました。 – Sunny

+0

これは非常に役に立ちますが、2番目のボックスには文字を入力する必要があります。イベントを再送するか、入力された文字をどのように送信しますか? – L3tha1Am6iti0n

答えて

0

あなたはkeyUpイベントにそれを切り替えることができ、あなたがe.charCodeチェックを使用することはできないでしょうが、それは、動作します(それが理由のためにそこにあります?)。また> = 5は> 5

$('#input1').keyup(function (e) { 
     var c = String.fromCharCode(e.keyCode); 
     var isWordcharacter = c.match(/\w/);//matches a-z, A-Z, 0-9, and _ 
     var tval = $('#input1').val(); 
     if (tval.length > 5 && e.which !== 0 && isWordcharacter) { 
      $('#input2').focus(); 
     } 
    }); 

Fiddle

+0

最初のボックスで矢印キーを使用すると、フォーカスが変わります。 – L3tha1Am6iti0n

+0

そして私は本当にe.charcodeは必要ないと思う。私は別のスレッドからコードの一部を取り出し、なぜそれがそこにあったのか分からなかったので、私はそれを残しました。 – L3tha1Am6iti0n

+0

私はあなたが矢印キーを使って何を意味しているのか、矢印キーを押しても効果がないので、tvalの長さを変更しないので、 –

関連する問題