2009-07-09 6 views
8

J'ai une page avec un formulaire qui est soumis via ajaxSubmit() (donc, sans changer la page).Comment empêcher l'utilisateur de changer de page avec jQuery

Mon but est que, lorsque l'utilisateur essaie de changer de page (ou même de fermer le navigateur), je lui demande s'il veut vraiment quitter la page sans envoyer le formulaire (exactement comme le fait gmail). Gmail par exemple le faire avec un popup window.confirm-like, mais si c'est possible, je vais le gérer avec des messages et des options personnalisées.

jQuery ont l'événement unload:

$(window).unload(function() { alert("Bye now!"); }); 

mais il me permet juste de faire quelque chose avant de quitter la page; J'ai besoin de 'bloquer' la sortie de la page, si l'utilisateur clique sur le bouton relatif. Alors, comment gérer (et annuler) l'événement de sortie de page?

Répondre

16

essayez les opérations suivantes. Démo here

<script type="text/javascript"> 

     function unloadPage(){ 
      return "dont leave me this way"; 
     } 

     window.onbeforeunload = unloadPage; 

</script> 
+0

Oui, c'est tout! Je suis désolé je ne peux pas personnaliser le 'alerte', mais je ne pense pas que ce sera un gros problème. – Strae

10

Il est possible bind l'événement "onbeforeunload" avec jQuery:

$(window).bind('beforeunload', function(e) { 
    return "ATTENZIONE!!"; 
}); 

Il fonctionne !!

Questions connexes