: 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

Modifications ultra-simples et sympa pour wordpress

Modifications ultra-simples et sympa pour wordpress

Petite liste de fonctions rajoutable sans risque dans le functions.php de wordpress pour se... Voir +
Créer une tache web cron chez OVH avec paramètres

Créer une tache web cron chez OVH avec paramètres

Souvent les hébergeurs ils limitent l'utilisation de crontab notamment OVH Voir +
Connecter un ordinateur linux à un NAS Synology au démarrage

Connecter un ordinateur linux à un NAS Synology au démarrage

De manière automatique avec des partages smb/cifs Voir +

Dernieres Quotes DTC

(Par claptraptrap)

Merci DTC de m’aider à réviser mes formules trigo!

@LeVraiChef: Sarkozy aura vu plus de juges dans sa carrière politique que dans sa carrière d'avocat

#19591 - Voir les commentaires

(A propos de)

KaSoToa: Kess vous faites?

Nexuiz: Je regarde ma copine par skype qui éclate du papier bulle avec un petit rire narquoi

KaSoToa: Ho...

#19592 - Voir les commentaires

(Par Eudio)

C’est parceque les juges ne digèrent pas la salade d’avocat