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

HTML Discussion :

[HTML + JS] gif animé à la validation d'un formulaire + pb IE


Sujet :

HTML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut [HTML + JS] gif animé à la validation d'un formulaire + pb IE
    Bonjour à tous, mon problème :
    Je veut afficher un gif animé (loading.gif) à la validation de mon formulaire.
    Tout fonctionne bien sauf sur IE ou mon gif animé n'est pas animé

    Quelques morceaux de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <head>	
    function afficherLoading()
    {
         $('loading').style.display='block';	
         $('liste_contact').style.display='none';
         document.form.submit();
    }
    </head>
    <body>
    <div id='loading' style='display:none'><img src='/config/img/loading.gif'></div>
    <form action='' method='post' name='form'>
    <input type='button' value='Inviter mes amis' onclick='afficherLoading()'>
    </form>
    </body>
    J'ai essayé de mettre le afficherLoading() dans le onsubmit de la balide form et du coup d'enlever le submit dans la fonction afficherLoading et de mettre un type='submit' sur mon bouton de formulaire. J'ai aussi essayer de creer en DOM mon image loading ... mais rien.

    Quelqu'un aurait une idée ? Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    essaye ce code. Il s'agit de charger l'image gif après l'envoi du formulaire.

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Ca vient peut-être aussi de la configuration de ton navigateur :

    Outils > Options Internet > Avancés > Multimédia > Cocher "Lire les animations dans les pages Web"

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut
    Merci auteur, il suffisait de soumettre le formulaire et d'affiché l'image ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <head>	
    function afficherLoading()
    {
         document.form.submit();
         $('loading').style.display='block';	
         $('liste_contact').style.display='none';
    }
    </head>
    <body>
    <div id='loading' style='display:none'><img src='/config/img/loading.gif'></div>
    <form action='' method='post' name='form'>
    <input type='button' value='Inviter mes amis' onclick='afficherLoading()'>
    </form>
    </body>

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    si la réponse te satisfait n'oublie pas le tag

  6. #6
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ça fonctionne avec FF, mais pas avec IE7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 
    <script type="text/javascript">
    function afficherLoading()
    {
         document.forms[0].submit();
         document.getElementById('img').style.display='block';      
    }
    </script>
    </head>
    <body>
    <?php
     if(isset($_POST)) sleep(3);
    ?>
     
    <form method="post" action="" onsubmit="return false;">
    <input type="submit" onclick="afficherLoading();"/>
    </form>
    <img id="img" src="sablier.gif" alt="" style="display:none;"/>
    </body>
    </html>

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    arf, et moi qui pensait que ça allait résoudre ton problème

    Et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
     
    <script type="text/javascript">
    function gestionGif()
    {
      document.getElementById("image").src = "sablier.gif";
    }
     
    function envoiFormulaire()
    {
      document.getElementById("formulaire").submit();
    }
    </script>
     
    <body>
     
    <?php
     if(isset($_POST)) sleep(3); // simule la durée du traitement du formulaire
    ?>
     
     
      <form id="formulaire" method="post" action="" onsubmit="gestionGif()">
        <input type="button" onclick="envoiFormulaire();gestionGif()"/>
      </form>
     
      <img id="image" src="sablier.gif" alt=""/>  
     
    </body>
    le src de l'image est déterminé lors de l'envoi du formulaire

  8. #8
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je vais regarder ça de plus près.
    En tous les cas Merci !

    [EDIT] Oui! ça fonctionne!
    Bravo

    On peut simplifier comme ça aussi, ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
     
    <script type="text/javascript">
    function envoiFormulaire(){
      document.forms[0].submit();
      var obj=document.getElementById("image");
      if(obj) obj.src=obj.src;
    }
    </script>
     
    <body>
     
    <?php
     if(isset($_POST)) sleep(3); // simule la durée du traitement du formulaire
    ?>
     
      <form method="post" action="">
        <input type="button" onclick="envoiFormulaire();"/>
      </form>
     
      <img id="image" src="sablier.gif" alt=""/>  
     
    </body>
    J'envisageais d'utiliser un timer lancé après le submit pour recharger l'image...
    Mais ta solution est plus efficace. Merci !

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    A ajouter dans la FAQ ?

    Sachant que je me suis inspiré de ce qui a été écrit ici :
    http://www.webdeveloper.com/forum/sh...389#post867389

  10. #10
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Attendons un peu avant de proposer le code pour la FAQ,
    il peut encore être optimisé, par exemple j'ai vraiment besoin d'utiliser un bouton de type submit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
     
    <script type="text/javascript">
    function envoiFormulaire(form){
      form.submit();
      var obj=document.getElementById("image");
      if(obj) obj.src=obj.src;
      return false;
    }
    </script>
     
    <body>
      <img id="image" src="sablier.gif" alt=""/>  
     
      <form method="post" action="" onsubmit="return envoiFormulaire(this);">
        <input type="submit"/>
      </form>
     
     
    <?php
     if(isset($_POST)) sleep(3);
    ?>
     
    </body>
    L'avantage, c'est que mon formulaire fonctionnera même si JS est désactivé.

  11. #11
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Bon maintenant, on a un code nickel et qui n'a plus rien à voir avec celui de webdevelopper...

    On pourrait aussi facilement afficher/masquer l'image et le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
      <title>New Document</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
     
    <script type="text/javascript">
    function envoiFormulaire(form){
      form.submit();
      form.style.display='none';
      var obj=document.getElementById("image");
      if(obj){
        obj.src=obj.src;
        obj.style.display='block';
      }
      return false;
    }
    </script>
     
    <body>
      <img id="image" src="sablier.gif" alt="" style="display:none;"/>  
     
      <form method="post" action="" onsubmit="return envoiFormulaire(this);">
        <input type="submit"/>
      </form>
     
     
    <?php
     if(isset($_POST)) sleep(3);
    ?>
     
    </body>

  12. #12
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ajoût de la solution dans le forum "Contribuez" de Javascript :
    http://www.developpez.net/forums/d65...formulaire-ie/


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JavaScript] GIF animé & validation de formulaire avec IE
    Par Sub0 dans le forum Contribuez
    Réponses: 2
    Dernier message: 11/12/2008, 15h47
  2. [HTML] [gif animée] => bonne sous FF, non animée sous IE
    Par hansaplast dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 19/09/2006, 15h34
  3. [FLASH MX 2004] Probleme de creation de GIF anime
    Par hedgehog dans le forum Flash
    Réponses: 5
    Dernier message: 13/03/2005, 19h07
  4. Rx Controls Gif animés
    Par toufou dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/08/2002, 14h09

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