Nous créons un message d'avertissement pour une application comportant plusieurs formulaires. Dans les pages simples, c'est très facile, nous détectons simplement les changements dans les éléments du formulaire et si un utilisateur veut décharger la page, nous lui montrons le message d'avertissement.
Mais... nous avons aussi quelques formulaires dans Kendo Windows, la chose est que nous devons montrer ce même message de confirmation si un utilisateur veut fermer la fenêtre. C'est le script que nous avons maintenant :
$('div:has(div[data-role="window"])').find('a:has(span.k-i-close)').live('click', function (e) {
if (formHasChanged) {
alert('pepe');
return false;
}
return true;
});
Le problème avec ce script est qu'il n'empêche pas la fenêtre de se fermer. L'événement de fermeture semble se produire avant notre alerte. Cette solution peut fonctionner http://www.kendoui.com/forums/ui/window/new-event-onclosing.aspx mais nos fenêtres sont créées à la volée.
Quelqu'un a-t-il une idée de la façon de régler ce problème ?
Merci d'avance !
Le code où nous voulions insérer cette solution de contournement de kendo thingy :
var formHasChanged = false;
$('form.withWarningMessage').find('input,select,textarea').live('change', function () {
formHasChanged = true;
window.onbeforeunload = function () {
if (formHasChanged) {
return confirmWarningMessage;
}
};
$('input:submit').live('click', function () {
formHasChanged = false;
});
});