2009-10-07 11 views
5

Estoy tratando de centrarse en la entrada de nombre de usuario en la pantalla de mi entrada para permitir un acceso más fácil de entrar y actualmente mi jQuery tiene este aspectoJquery: ¿se enfoca en un campo de entrada en un formulario en la carga de la página?

$(document).ready(function() { 
    $('#Username').focus(); 
}); 

pero eso no funciona ... alguna idea?

+0

Coloque la etiqueta para el nombre de usuario. –

+1

como la mayoría de las personas ya han dicho, eso debería funcionar a menos que su nombre de esa etiqueta de nombre de usuario sea incorrecto – TStamper

+0

esto está haciendo asp.net MVC, inspeccionando el elemento en la página verifica que mi ID sea correcta, el código es <% = Html.TextBox ("Nombre de usuario")%> – Jimmy

Respuesta

4

Funciona en el siguiente ejemplo simple. Por lo tanto, hay algo más en su página que hace que la entrada pierda el foco. Sugiero usar setTimeout para establecer el foco.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
    <title>test!</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"> 
    </script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
    $('#Username').focus(); 
}); 
    </script> 

    </head> 

    <body> 
    <input id="Username" /> 
    </body> 
</html> 
+0

no estoy seguro de por qué no funciona ... no estoy seguro de lo que está pasando – Jimmy

5

¿La etiqueta tiene un atributo id?

<input id="Username" name="Username" type="text" /> 

supongo que sólo tiene un atributo name:

<input name="Username" type="text" /> 

Si no puede añadir el atributo ID, puede seleccionar de esta manera:

$("input[name='Username']").focus(); 
0

Su El código HTML se ve como < id de entrada = "Nombre de usuario" ... > (distingue entre mayúsculas y minúsculas)?

1

Bueno, así es como lo haces. Asegúrate de que la identificación sea correcta, supongo.

0

Internet Explorer tiene algunos problemas con, por ejemplo, este código:

$(document).ready(function(){ 
     //focus on search field 
     $("#userSearchField").focus(); 
}); 

lo estúpido que se ve, pero esto resuelve el problema para mí:

$(document).ready(function(){ 
    //focus on search field 
    $("#userSearchField").focus(); 
    $("#userSearchField").focus(); 
}); 

O tratar de utilizar setTimeout

2

Un tiempo de espera probablemente sea el truco:

$(document).ready(function() { 
     setTimeout(function(){ 
      $("input[name='inputname']").focus(); 
     }, 200); 
    }); 
Cuestiones relacionadas