2009-10-07 9 views
5

Je suis en train de se concentrer sur l'entrée de nom d'utilisateur dans mon écran de connexion pour permettre un accès plus facile à connecter et actuellement mon jquery ressemble à ceciJquery - Focus sur un champ de saisie dans un formulaire sur pageload?

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

mais cela ne fonctionne pas ... des idées?

+0

Publiez le tag pour l'élément de formulaire de votre nom d'utilisateur. –

+1

comme la plupart des gens l'ont déjà dit, cela devrait fonctionner à moins que votre nom de cet identifiant ne soit incorrect – TStamper

+0

cela fait asp.net MVC, inspecter l'élément dans la page vérifie que mon ID est correct, le code est <% = Html.TextBox ("Nom d'utilisateur")%> – Jimmy

Répondre

4

Cela fonctionne dans l'exemple simple suivant. Par conséquent, il se passe quelque chose d'autre sur votre page qui entraîne une perte de focus. Je suggère d'utiliser setTimeout pour définir le focus.

<!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

pas sûr pourquoi il ne fonctionne pas ... pas sûr de ce qui se passe – Jimmy

5

Le tag possède-t-il un attribut id?

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

Je devine que ce ne dispose que d'un attribut name:

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

Si vous ne pouvez pas ajouter l'attribut ID, vous pouvez le sélectionner comme ceci:

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

Votre HTML ressemble à < entrée id = "Nom d'utilisateur" ... > (sensible à la casse)?

1

Eh bien, c'est comme ça que vous le faites. Assurez-vous que l'ID est correcte, je suppose.

0

Internet Explorer a quelques problèmes avec par exemple ce code:

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

Comment il semble stupide, mais cela a résolu le problème pour moi:

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

Ou essayez d'utiliser setTimeout

2

Un délai d'attente fera probablement l'affaire:

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