Maison > interface Web > js tutoriel > Comment puis-je empêcher les utilisateurs de perdre les données de formulaire non enregistrées lorsqu'ils quittent une page ?

Comment puis-je empêcher les utilisateurs de perdre les données de formulaire non enregistrées lorsqu'ils quittent une page ?

Linda Hamilton
Libérer: 2024-11-25 03:57:13
original
901 Les gens l'ont consulté

How Can I Prevent Users from Losing Unsaved Form Data When Leaving a Page?

Prévenir les modifications non enregistrées lors de l'abandon de page

Lorsque les utilisateurs quittent une page contenant des données de formulaire non enregistrées, il est crucial de les inviter à confirmer leur intentions d’éviter de perdre leur travail. Pour mettre en œuvre ceci :

Approche courte mais limitée :

window.addEventListener("beforeunload", function (e) {
  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});
Copier après la connexion

Cette approche déclenche cependant le message de confirmation même lorsque les données du formulaire sont soumises, ce qui nécessite une solution de contournement.

Solution complète avec Dirty Flag :

Pour empêcher le message de confirmation de apparaissant sur les feuilles de page non pertinentes, utilisez un indicateur « sale » qui indique quand les données du formulaire ont été modifiées.

const isDirty = () => false;

window.addEventListener("beforeunload", function (e) {
  if (formSubmitting || !isDirty()) {
    return;
  }

  e.returnValue = "Warning: Unsaved changes. Are you sure you want to leave?";
});
Copier après la connexion

Implémentez la méthode isDirty en utilisant :

  • Event- Approche basée : Surveillez les interactions des utilisateurs pour détecter les changements, mais tenez compte des limitations telles que ne pas déclencher lors de la coupe et collage.
  • jQuery Dirty Plugin : Une bibliothèque pratique pour détecter les modifications de formulaire et empêcher les sorties de page avec un message personnalisé.

Avertissement : navigateur limité Assistance

Notez que les messages de confirmation personnalisés ne sont plus pris en charge dans certains navigateurs, tels que Chrome 51 et versions ultérieures. Les alternatives incluent l'affichage d'une boîte de dialogue générique avec les boutons « Quitter » et « Rester ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal