IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Message d'alert si formulaire modifie mais pas valide


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Message d'alert si formulaire modifie mais pas valide
    Bonjour

    je cherche une solution pour tester :

    1- Si le formulaire a été modifié mais pas validé (depuis le chargement de la page ou la dernière validation dudit formulaire)
    2- Si c'est le cas envoyer une message d'alerte, en cas de clic sur un lien par exemple, qui proposerait d'enregistrer le formulaire ou d'annuler la procédure et d'aller sur le lien cliqué qui a déclenché la procédure...

    je ne sais pas si j'ai été clair

    merci pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    si ton formulaire n'est pas trop Grand ... (tout es relatif) tu peux faire un double en input type="hidden" avec à l'intérieur les valeurs par défaut

    Pour te simplifier la vie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <input type="text" id="MonChamp" /> 
    <input type="hidden" id="MonChamp_Def" value="MyDeffaultValue"/>
    ensuite, tu place un évent sur tous les liens de ta page appelant une fonction qui va vérifier tous les champs de ton formulaire (dont l'id ne contient pas "_Def") aux autre ... en cas de non correspondance des valeurs, tu affiche un confirm('êtes vous sur de vouloir partir sans terminer le remplissage de votre formulaire ???');

    Et si il te retourne False, tu intéromp l'Event .. Event.stop(); ... il n'y aura donc pas de rechargement de la page et l'internaute pourra reprendre son formulaire !..

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Utilises l'attribut defaultValue et fais une comparaison.
    Si des champs ont été modifiés, fais un return false sur onbeforeunload.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    dans mon entete j'ai utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
      function formChange(){
          document.forms[0].isChanged.value="1";
       }
       function confirmExit() {
          if(document.forms[0].isChanged.value=='1') 
              return "Vous avez effectue des modifications sans les enregistrer.";
      }
      window.onbeforeunload = confirmExit;
    </script>
    dans mon formulaire j'ai une balise hidden :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="isChanged" id="isChanged" value="0">
    et dans chaque champ de mon formulaire j'ai rajoute ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onChange="javascript:formChange()"
    Ca fonctionne parfaitement, le message s'affiche des qu'une modification a ete apportee mais y a t'il la possibilite d'exclure certains liens de la page ou meme le bouton submit qui m'affiche le message d'alerte ou de remettre la valeur a 0 lorsqu'on valide le formulaire ?

    Merci

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    j'ai tente de creer une nouvelle fonction qui remette a 0 la valeur test (isChanged) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function formRaz(){
        document.forms[0].isChanged.value="0";
    }
    et sur le bouton submit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onChange="javascript:formRaz()"
    mais j'ai encore le message
    Merci pour votre aide

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Bonjour,
    J'ai essayé de faire la même chose que gigraphe :
    http://www.developpez.net/forums/d89...nbeforeunload/
    Seulement, pour une raison qui m'échappe la fonction onbeforeunload s'exécute deux fois sous IE, et ça me fait que les gens reçoivent le message d'alerte au moment précis où l'utilisateur enregistre la page.
    Merci d'avance si vous avez des idées.
    Cordialement.

Discussions similaires

  1. [SP-2013] Donner le droit de modifier mais pas de supprimer
    Par Kael_004 dans le forum SharePoint
    Réponses: 1
    Dernier message: 27/08/2014, 16h10
  2. Réponses: 4
    Dernier message: 04/08/2011, 10h26
  3. Requete qui reprend les champs d'un formulaire, oui, mais pas tous
    Par Arttt dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 23/06/2008, 16h14
  4. Réponses: 4
    Dernier message: 30/05/2008, 11h42
  5. Réponses: 4
    Dernier message: 21/08/2005, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo