: 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 +
Integration de Gravatar dans un project symfony 2

Integration de Gravatar dans un project symfony 2

Tutorial pour Integrer facilement gravatar dans une project symfony 2 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

Skeletto : Je viens de me rendre compte que le langage qu'utilisent les gens qui font du droit ressemble étrangement à de l'art abstrait. C'est probablement joli, mais tu comprends rien.

#19525 - Voir les commentaires

<Maks> Mon coeur...?

<Polly> Oui ?

<Maks> Hier tu m'as parlé de mon cadeau de Noël, tu l'aurais pas commandé sur Amazon par hasard ?

<Polly> Oui, pourquoi ?

<Maks> Tu as commandé avec mon compte, c'est ça ?

<Polly> Tu as reçu un mail...

<Maks> Oui pour l'achat d'un Monopoly Game Of Thrones

<Polly> Et merde...

<Polly> J'ai hésité en plus

#19522 - Voir les commentaires

Elle : Ah dsl

Moi : Fibre aussi...

Elle : ?

Moi : Laisse tomber...

#19526 - Voir les commentaires

<Chouqui> Moi j'étais allé voir Saw 6 à Strasbourg.

<Chouqui> Juste pour le principe.

#19527 - Voir les commentaires