2009-09-28 9 views

Respuesta

28

Esto viene como parte de HTML 5, por lo que la falta de él en la versión anterior es probablemente más una supervisión o un caso de que haya otras opciones que reducen la prioridad.

Si tienes curiosidad, la sintaxis será algo como:

<input type="text" name="abc" value="" autofocus> 

por la norma, sólo se debe declarar una vez en una página.

Mientras tanto, con el estado de la nación, solo puedes hacerlo realmente con la secuencia de comandos en el evento de carga. La forma más sencilla, consiste en asignar el elemento por defecto en la página de un documento de identidad consistente (lo llaman 'enfoque automático') y luego establece siempre se siente:

var a_focus = document.getElementById('autofocus'); 
if(a_focus) a_focus.focus(); 

Espero que ayude.

+2

Para otros lectores, el atributo 'autofocus' se implementa ahora en este formato o' autofocus = "autofocus" 'debido a que es un atributo booleano –

5

¿No funciona TABINDEX = 0 para usted?

EDIT:

Lo sentimos - apresurado mi respuesta. TABINDEX = 0 solo funcionará si el usuario pulsa la tecla "TAB". Lo siento por eso. Lo siguiente establecerá el enfoque correctamente en la carga. Probado en los últimos IE, FF, Opera, Safari, & Chrome.

<form> 
    <input id="first" tabindex="1" /><br/> 
    <input id="second" tabindex="2" /> 
    <script> 
document.getElementById("first").focus(); 
    </script> 
</form> 
+0

No funciona para mí. –

+0

No es una buena práctica escribir guiones en línea en la secuencia de comandos, debe estar en una función y la función debe invocarse en un evento – abhi

1

Y probablemente hay una buena razón; todo parece obvio en retrospectiva.

3

No hay. Realmente no hay una buena razón, aparte de que todos se acostumbraron a usar focus() en su lugar. (Desafortunadamente focus() tiene inconvenientes si toda la página no se carga y se enfoca de inmediato.)

Me encantaría ver una designación tanto de foco predeterminado como de botón de envío disponible en HTML, pero la gente del navegador no parece estar interesado Editar: como dijo John, este es ahora en el HTML5 draft, aunque todavía no hay implementación y HTML5 está lejos de finalizar. ¡Ya veremos!

+4

Me encantan los sitios que hacen una llamada focus() al campo de inicio de sesión del usuario. Normalmente, cuando comienzo a ingresar mi contraseña, la página finalmente se carga y mueve mi enfoque del cuadro de contraseña al de nombre de usuario. En este punto, cualquiera que esté sentado a mi lado ve mi contraseña en el cuadro de nombre de usuario. – brianegge

+0

De hecho. Hay soluciones con olfateo en donde se enfoca y no se enfoca si ya tiene enfoque, pero son molestas y específicas del navegador. Si debe 'enfocar()', probablemente sea mejor hacerlo en una secuencia de comandos en línea inmediatamente después del campo en cuestión. Ciertamente no carga. – bobince

Cuestiones relacionadas