2011-01-16 13 views
6

Ho un modulo di accesso di base, che utilizza ajax per accedere agli utenti. Se i dettagli sono errati, viene visualizzato un testo che mostra che l'accesso non è riuscito. Quando questo viene mostrato, l'ultima casella di testo che l'utente ha immesso nel testo perde il focus.jquery ultimo elemento attivo

È possibile impostare lo stato attivo sull'ultima casella di testo su cui si trovava l'utente prima di premere Invia/premere Invio?

$('#login').click(function (e) 
{ 
    e.preventDefault(); 
    $.ajax({ 
    type: "POST", 
    dataType: "text", 
    url: "login.php", 
    data: "username=" + $("#username").val() + "&password=" + $("#password").val(), 
    cache: false, 
    success: function(reply) 
    { 
    if (reply.indexOf("Success") >= 0) 
    { 
    location.reload(); 
    } 
    else 
    { 
    $("#loginResult").html("Login Failed"); 
    //set focus here  
    } 
    } 
}); 

Qualsiasi suggerimento, grazie.

risposta

7

Iscriviti tutti i tuoi ingressi alla manifestazione focusOut

$('.input').focusout(function() { 
    $('#myform').data('lastSelected', $(this)); 
}); 
+1

gusto personale:. Vorrei collegare il $ (questo) per la forma, come in, $ ('# myForm') dei dati ('lastSelected' $ (questo)). ci si sente meno inquinanti delle variabili globali – davin

+0

@davin, se nella pagina sono presenti più moduli, è necessario mantenere un riferimento anche al modulo. –

+0

@Gaby, se si dispone di più moduli e si utilizza una variabile globale, terminare gli elementi di messa a fuoco nella forma _wrong_! – davin

Problemi correlati