0

私のフォームのすべての入力はtextareaclasslargeです。

次のことを試していますが、うまくいきません。

if(e.which == 9){ // tab
    $(this).next('textarea.large').focus();
}

$next = $(":textarea:eq(" + ($(":textarea").index(this) + 1) + ")"); $next.focus();
私は役に立たなかった(:textareaは有効な擬似要素ではありませんでした)、および他のいくつかのバリエーションを試し ました。

私もこれを試しました:

$(this).next(':input').focus();

SO で他のコードを確認しましたが、に焦点を当てているinput type='text'ようで、テキストエリアでは機能しないようです。

フォーム内のすべてのテキストエリアを取得して次のテキストエリアに移動するための、シンプルで直接的でクロスブラウザー互換の方法はありませんか? これらのテキストエリアの一部は動的に作成されるため、最初にページが読み込まれたときにすべてが表示されるわけではありません。ただし、タブはそれらすべてに対して機能する必要があります。

編集

これは簡単なフィドルで簡単に解決できますが、問題は、次の条件とイベントで他にもいくつかのことが起こっていることです。

jQuery(document).on('keydown blur','textarea.large',function(
 if (e.which == 13 || e.type=='focusout' || e.type=='blur' || e.which == 32) //32 is space
 { ... a bunch of stuff on the page, which naturally takes focus out of the current input
  }
});
4

2 に答える 2

0

input 要素と textarea 要素に tabindex 属性を設定できます。

http://w3schools.com/tags/att_global_tabindex.asp

于 2013-01-01T04:42:24.510 に答える