2011-03-12 9 views
3

私は現在、(おそらく)簡単なプログラミングで問題が発生しています。jquery:特定の部分にタブトリガーを入力してください

$(':text').keyup(function(e) { 
    if(e.keyCode == 13) { 
     alert('Enter key was pressed.'); 

     $(this).trigger({type: 'keyup', keyCode: 9}); 
    } 
}); 

私はそれらのどれも実際にこのような単純なではありません、この件に関して、ほぼ20の記事を検索した:私はjqueryのではかなり初心者くさい

これらは私のコードですね。ここに問題があります

タブキーはEnterを置き換えると思われますが、タブはトリガーしませんでした。トリガーされないという意味は、なんらかの面白いものです。私は9を13に変更しようとしましたが(これは入力自体です)、ブラウザはアラート・ラインを無限にループし続けます。つまり、アラートの下のコードによってトリガーされる別の入力にヒットします。

どうすればいいですか?キーコード9を押した場合、jqueryに何をすべきか教えてください。あたかも自分がキーボードを打つかのようにトリガーする方法はありますか?

tyvm前:任意のヘルプは大幅に

+0

なぜあなたは特にEnterキーを交換しようとしていますか? Enterキーに何か他のものがありますか?フォームをタブで送信しようとしていますか? アラートループの兆候はありません。以下を参照してください:http://jsfiddle.net/philwinkle/6KdUj/ アラートがスクリプトの実行をブロックするので、この種のデバッグを行う際には本当に 'console.log()'を使うことをお勧めします。 – philwinkle

+0

です。これは、タブの代わりに入力を使用してテキストボックス間を移動するためです。すべてのテキストボックスが自動的に生成されるので(コードワイズではなく、コード化されているので、テキストボックスの新しいセットが生成されるようにコード化されている)、別のセットのテキストボックスが生成されるので、テキストボックスをインデックス化するのは面倒です。テキストボックスを真ん中に挿入すると、タブのインデックス全体が無駄になります。 警告ループの痕跡については、keyCode:9をkeyCode:13に変更してみてください。ループします。 – Alex

答えて

0

フォーカスをリセットするのではなくタブを送信してみてくださいを理解されるであろうD。

$(':text').keydown(function(e) { 
    if(e.keyCode == 13 && $(this).attr('type') != 'submit') { 
     e.preventDefault(); 
     $(this).nextAll('input:first').focus(); 
    } 
}); 
関連する問題