2011-07-08 7 views
7

Per interrompere l'utente di lasciare la mia pagina, sto usando questo javascript:arresto all'utente di lasciare la pagina web, ad eccezione di quando presenta sotto forma

window.onbeforeunload = function() 
{ 
    if($('textarea#usermessage').val() != '') 
    { 
    return "You have started writing a message."; 
    } 
}; 

Questo mostra un messaggio che avvisa l'utente di non lasciare la pagina perché hanno iniziato a scrivere un messaggio ma non sono stati inviati. Questo si presenta per salvare l'utente dalla perdita di questi dati.

Ora, come posso interrompere questo messaggio quando viene inviato il modulo?

risposta

5

Imposta un flag nel gestore di invio del modulo; controlla se il flag è impostato nel tuo gestore di scaricamento. Se lo è - voilà, è un modulo di invio!

+0

Questo era molto più semplice. Grazie –

9
function handleWindowLeaving(message, form) { 
    $(window).bind('beforeunload', function (event) { 
     return message; 
    }); 
    $(form).bind('submit', function() { 
     $(window).unbind('beforeunload'); 
    }); 
}; 

quando si chiama questo, passare il messaggio e il riferimento modulo, che verrà automaticamente rimuovere onbeforeunload quando inviare il modulo. Altrimenti, mostra il messaggio all'utente

+0

Cosa intendi per riferimento del modulo? Intendi il nome tag? –

+0

Intendo selettore jQuery per l'elemento modulo desiderato. $ ('form') ad esempio – archil

Problemi correlati