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 :

show_hide un div: problème avec retour


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut show_hide un div: problème avec retour
    Bonjour!


    Un second petit problème JS, qui n'en est pas vraiment un. Je m'explique: j'aimerais afficher/cacher un bout de formulaire avec JS avec un checkbox.

    Facile, tout marche nickel SAUF sous IE lorsque je fais "retour". Voici les éléments clés:
    Ma fonction (que j'appelle avec le checkbox)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function show_hide(layer) {
    	layer = document.getElementById(layer);
    	if(document.getElementById('address').checked ) {
    		layer.style.display = "block";
    	}else{
    		layer.style.display = "none";
    	}
    et en bas de page (pour afficher/cacher au chargement) [pas d'accès au tag body onload...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SCRIPT LANGUAGE="JavaScript">
    <!-- HIDE THE SCRIPT FROM OTHER BROWSERS
    show_hide('div_address');
    // STOP HIDING FROM OTHER BROWSERS -->
    </SCRIPT>
    Avec FF ça passe nickel, mais avec IE un "retour" me cache le DIV! (même si la checkbox est cochée (et le reste après le retour)


    Et en fait si j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script for=window event=onload language="JScript">
      show_hide('div_address');
    </script>
    ça passe,
    mais c'est pas une solution très sexy il me semble (EDIT: surtout que ça cause des problèmes sur ma page plus marche pas avec Netscape)

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: show_hide un div: problème avec retour
    Citation Envoyé par -DeN-
    Avec FF ça passe nickel, mais avec IE un "retour" me cache le DIV! (même si la checkbox est cochée (et le reste après le retour)
    Qu'est ce que tu appelles un retour????

    Sinon, pour définir le fait que les champs sont cachés par défaut, je conseille de le mettre directement dans le style de ton div:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id='...' style='display:none'>
    Et tant pis pour les gens qui ont désactivé le Javascript.

    Sinon, tu peux attacher l'évenement à la page de façon propre avec attachEvent/addEventListener.
    Enfin, tu peux utiliser la propriété defer de IE (attribut à mettre dans ta balise script) pour que le script ne soit initialisé qu'après le chargement complet de la page).

    Mais la première solution est la meilleure

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    super plein d'éléments de réponse, je vais étudier ça de suite.

    Par retour j'entend:

    Soit un clic sur bouton IE "retour" (flèche)
    soit un clic sur le lien: echo <a href=\"javascript:history.back();\"><img src=\"template/bouton_back.jpg\" border=\"0\" alt=\"back\"></a>";

    Je vais voir de suite ces solutions. IE emmerde car avec Netscape 7,8,FF ça marche nickel.

    EDIT: en ce qui concerne la première solution, c'est déjà comme ça. Le problème survient que si: l'utilisateur check la box, fait "suite" puis "back". La checkbox est activée MAIS le div est caché!

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SCRIPT LANGUAGE="JavaScript" defer="defer">
    <!-- HIDE THE SCRIPT FROM OTHER BROWSERS
    show_hide('div_address');
    // STOP HIDING FROM OTHER BROWSERS -->
    </SCRIPT>
    Marche pas malheureusement. Pourtant ça semblait la solution idéale...

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Voilà j'ai créé un simple page HTML de test, qui résume ce que fait ma page. Sous Firefox ça marche du tonerre, sous IE ça merde. Vous pouvez copier-coller pour tester...

    Merci bcp pour votre aide!

    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
    34
    35
    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    <SCRIPT LANGUAGE="JavaScript">
    <!-- HIDE THE SCRIPT FROM OTHER BROWSERS
    function show_hide(layer) {
    	layer = document.getElementById(layer);
    	if(document.getElementById('address').checked) {
    		layer.style.display = "block";
    	}else{
    		layer.style.display = "none";
    	}
    }
    // STOP HIDING FROM OTHER BROWSERS -->
    </SCRIPT>
     
    <form action="do_back" method="post" enctype="" name="frmshop">
    test0 
    <input class="checkbox" name="address" type="checkbox" id="address" onClick="show_hide('div_address');">
    <input type="submit" name="Submit" value="test" />
    <div id="div_address" style="display:none">
    test1
    </div>
    </form>
     
    <SCRIPT LANGUAGE="JavaScript">
    <!-- HIDE THE SCRIPT FROM OTHER BROWSERS
    show_hide('div_address');
    // STOP HIDING FROM OTHER BROWSERS -->
    </SCRIPT>
     
    </body>
    </html>

Discussions similaires

  1. Problème avec retour LDAP
    Par alen22 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 21/05/2012, 14h44
  2. Div dans une div problème avec firefox
    Par mathias59 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/12/2009, 15h52
  3. Problème avec retour d'une procédure stockée
    Par jomphh dans le forum Deski
    Réponses: 22
    Dernier message: 21/11/2007, 23h57
  4. [AJAX] Rechargement de div : problème avec IE 6
    Par fayred dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/07/2007, 12h07
  5. [utilitaire bcp]problème avec retour à la ligne
    Par m-mas dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/05/2007, 15h10

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