web-dev-qa-db-fra.com

jquery, mettre l'accent sur la première entrée activée ou sélectionner ou zone de texte sur la page

C'est assez simple. Je souhaite définir le focus sur le premier contrôle activé et non masqué sur la page.

Pour une zone de texte, j'ai

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

Mais je veux obtenir "tous" les contrôles d'entrée de formulaire: zone de texte, case à cocher, zone de texte, liste déroulante, radio dans mon sélecteur pour saisir le premier contrôle activé et non masqué. Aucune suggestion?

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

Dans le prolongement de la réponse de Jordan

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

Celui-ci exclut également les entrées en lecture seule

10
Dmitri Tsoy

C'est un peu plus complet:

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

Lamen: Concentrez le curseur dans la première entrée de texte sous une forme visible, mais s'il utilise la classe nommée "filtre", ignorez-le!

5
zmonteca

Essaye ça:

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