I. Explications

Pour inviter l'utilisateur à sauvegarder un formulaire dont les informations ont changé lorsqu'il quitte la page :

  1. positionnez à true l'option trackResetOnLoad du formulaire BasicExt.form.Basic ;
  2. gérez l'événement dirtychangehandledirtychangehandle du formulaire.

II. Code

Ce qui donne quelque chose comme ceci :

 
Sélectionnez
function my_onbeforeunload(e){
  message = 'Des modifications ne sont pas sauvegardées. Êtes-vous sûr de vouloir quitter cette page ?'; 
  e = e || window.event;
  if(e){
    e.returnValue = message;
  }
  return message;
}

form.on('dirtychange', function(basic, dirty, eOpts){
  window.onbeforeunload = dirty ? my_onbeforeunload : null; 
});

III. Remerciements

Cet article a été publié avec l'aimable autorisation de Neil McGuigan. L'article original peut être lu sur le blog ExtJS TutorialsExtJS Tutorials : How to prompt the user to save a dirty form if leaving the pageHow to prompt the user to save a dirty form if leaving the page.
Je remercie également djibril pour sa relecture rapide.