2010-12-01 15 views
31

Es bastante sencillo. Quiero establecer el foco en el primer control habilitado y no oculto en la página.jquery, establezca el foco en la primera entrada activada o seleccione o textarea en la página

Para un cuadro de texto, tengo

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

Pero quiero conseguir "todos" los controles de entrada de formulario: cuadro de texto, casilla de verificación, área de texto, desplegable, la radio en mi selector para agarrar el control primera habilitado y no oculta . ¿Alguna sugerencia?

Respuesta

68
$(':input:enabled:visible:first').focus(); 
+0

que funciona como un campeón. Gracias Jordan. – Josh

+2

Luego, siéntase libre de seleccionarlo como la respuesta correcta. :) –

+9

Curiosa historia, estaba esperando que transcurriera el tiempo para poder seleccionarlo como la respuesta, y el poder en la oficina se apagó. – Josh

1

Prueba esto:

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

Esto es un poco más amplia:

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

Lamen: Enfoque el cursor en la primera entrada de texto en una forma que es visible, pero si usa la clase llamada "filtro", ¡ignóralo!

8

Como una extensión de la respuesta de Jordan

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

Este también excluye a las entradas de sólo lectura

Cuestiones relacionadas