: Tuto Par :
Alerte de confirmation de changement de page avec jQuery pour un formulaire avec ckeditor

Pour la réalisation de mon backend du site que vous visualisez en ce moment même j’ai été confronté à un problème d’assistance anti-connerie. Je me suis rendu compte qu'il était aisé de fermer par mégarde la page de création de son nouvel article.

J’ai donc cherché à faire comme pour wordpress & co, c’est à dire, faire apparaitre un message de confirmation ( en JavaScript ) si une partie du formulaire à été modifié. Cela ne pose pas de vrai difficulté et on trouve facilement des morceaux de code sur internet. Il en est autrement pour CKeditor, et encore plus pour avoir quelque chose qui fonctionne pour les deux en même temps. Voila donc une proposition personnelle pour s’empêcher de faire une connerie :

Pour les inputs :

var unsaved = false;

$(":input").change(function () {
    
    unsaved = true;
});
function unloadPage() {    
    if (unsaved) {
        return "Unsaved changes present!";
    }
}
window.onbeforeunload = unloadPage;

Pour CKEditor :

$( ".edit-form" ).submit(function( event ) {
   for (editorName in CKEDITOR.instances) {
        if (CKEDITOR.instances[editorName].checkDirty()) {
            CKEDITOR.instances[editorName].resetDirty();            
        }
    }
   unsaved = false;
});    

$(function () {
    document.body.onbeforeunload = function () {
        for (editorName in CKEDITOR.instances) {
            if (CKEDITOR.instances[editorName].checkDirty()) {
                return "Unsaved changes present!";
            }
        }
    }
})

Vous noterez la boucle for qui (en théorie) permet d'appliquer la modification à toutes les instances de CKEditor.

Avatar de l'utilisateur Nodoka

Nodoka

PedoQueen des intrawebz 2.0, antéchristine de la connerie, j'aime les loli, les vocaloid, l’humour noir (car le blanc est raciste) et les Animés. Promis je te mangerais trollement bien avec amour. Ma devise : "If her age is on the clock, she's old enough for the cock".

Articles Aléatoires

Passage sous PHP7

Passage sous PHP7

Migrer un serveur Debian de PHP5 à PHP7 facilement en 30min Voir +
Utiliser Wodpress en SFTP sans plugin

Utiliser Wodpress en SFTP sans plugin

Permettre à worpdress d'utiliser SFTP sans plugin en quelques lignes PHP Voir +
Alerte de confirmation de changement de page avec jQuery pour un formulaire avec ckeditor

Alerte de confirmation de changement de page avec jQuery pour un formulaire avec ckeditor

Petit script jQuery pour afficher une alerte JavaScript pour confirmer la fermeture de la page... Voir +

Dernieres Quotes DTC

MacTheZazou: Youpidaki

MacTheZazou: Je suis viré de mon école pendant 3 semaines

MacTheZazou: o /

Maxigregrze: Wat

Maxigregrze: Kestafoutu

MacTheZazou: J'ai fait un flappy bird avec la tête d'un élève

Maxigregrze: Attend, quoi?

Maxigregrze: Tu veux dire que tu as été viré 3 semaines seulement car t'as dev un machin avec la tête d'un élève...?

MacTheZazou: OUI

MacTheZazou: c'est magique hein

Maxigregrze: Je vais construire un temple en ton honneur, je reviens

#19132 - Voir les commentaires

<A3fka> A tous ceux qui pensent qu'ils ont un nom de merde

<A3fka> Sachez-le :

<A3fka> Dans Pokémon version argent, dans l'arène d'Ecorcia, il y a un dresseur qui s'appelle Jean-Loïc.

#19129 - Voir les commentaires

<Kiwi> T'es super mignonne :D

<Elise> Tu es sérieux? :x

<Elise> Tu penses que j'suis jolie ? :x

<Kiwi> Mais oui

<Kiwi> j'en suis même complètement dur

<Kiwi> sur*

#14161 - Voir les commentaires

(Par the despered)

Dédicace à tous les Jean Loïc de la vraie vie.