web-dev-qa-db-ja.com

jquery、最初の有効な入力にフォーカスを設定するか、ページ上の選択またはテキストエリア

それはかなり簡単です。ページで非表示ではなく、最初に有効になっているコントロールにフォーカスを設定したい。

テキストボックスの場合、

$("input[type='text']:visible:enabled:first").focus();

しかし、私は「すべての」フォーム入力コントロールを取得したいと思います。セレクターのテキストボックス、チェックボックス、テキストエリア、ドロップダウン、ラジオを使用して、最初の有効で非表示ではないコントロールを取得します。助言がありますか?

35
Josh
$(':input:enabled:visible:first').focus();
75

ジョーダンの答えの延長として

$(':input:enabled:visible:not([readonly]):first').focus();

これは読み取り専用の入力も除外します

10
Dmitri Tsoy

これはもう少し包括的です:

$('form :input:text:visible:not(input[class*=filter]):first').focus();

ラーメン:表示されているフォームの最初のテキスト入力にカーソルを合わせますが、「filter」という名前のクラスを使用している場合は無視してください。

5
zmonteca

これを試して:

$("input[type='text']:enabled","another selector","another selector").first().focus();
3
Breezer