2009-10-07 28 views
5

Sto cercando di concentrarsi sul contributo nome utente nella mia schermata di accesso per consentire l'accesso più facile l'accesso e attualmente il mio jquery appare cosìJquery - Focus su un campo di input in un modulo sul pageload?

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

ma che non funziona ... tutte le idee?

+0

Invia il tag per il modulo del nome utente. –

+1

come la maggior parte delle persone ha già detto, che dovrebbe funzionare a meno che il nome di quel tag username non sia corretto – TStamper

+0

questo sta facendo asp.net MVC, ispezionando l'elemento nella pagina verifica che il mio ID sia corretto, il codice è <% = Html.TextBox ("Nome utente")%> – Jimmy

risposta

4

Funziona nel seguente esempio semplice. Quindi c'è qualcos'altro nella tua pagina che fa perdere l'attenzione all'input. Suggerisco di utilizzare setTimeout per impostare lo stato attivo.

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

non so perché non funzioni ... non è sicuro che cosa sta succedendo – Jimmy

5

Il tag ha un attributo id?

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

Sto indovinando che ha solo un attributo name:

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

Se non è possibile aggiungere l'attributo ID, è possibile selezionare in questo modo:

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

tuo HTML assomiglia a < id di input = "Nome utente" ... > (sensibile al maiuscolo/minuscolo)?

1

Bene, è così che lo fai. Assicurati che l'ID sia corretto, suppongo.

0

Internet Explorer ha alcuni problemi con per esempio questo codice:

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

Che stupido che sembra, ma questo ha risolto il problema per me:

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

Oppure provate a usare setTimeout

2

Un timeout probabilmente farà il trucco:

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