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 :

[POO] JS, HTML et persistance de données


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut [POO] JS, HTML et persistance de données
    Bonjour,

    J'ai un problème avec du javascript embarqué dans une page HTML.
    J'ai 2 boutons radio et une fonction qui vient choisir quel bouton sélectionner par défaut (le 1).
    1/ J'ouvre ma page avec IE7 (no comment) et tout se passe bien, le bouton 1 est sélectionné.
    2/ Je clique le bouton 2. Tout se passe comme prévu.
    3/ Je réactualise ma page
    3a/ Je repasse par ma fonction de choix du bouton par défaut et ça marche
    3b/ Il se passe quelque chose que je ne maîtrise pas et le bouton 2, que sur lequel j'avais cliqué à l'étape 2 est lui aussi sélectionné automatiquement.

    Pourquoi ? Comment éviter celà ?

    Commentaires:
    - J'ai essayé de supprimer les cookies, les données de formulaire et les fichiers temporaires avant de réactualiser ma page, mais ce n'est pas mieux.
    - Dans l'exemple de code que je donne, j'ai un if(1) qui remplace une vraie fonction, ce qui m'interdit de simplement mettre le "checked" à "true" dans la création du bouton.

    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
    <script language="Javascript">
     
       //Message popup activeX object
       var WshShell = new ActiveXObject("WScript.Shell");
     
     
       function DefaultConfig()
          {
          if(1)
             {
             document.getElementById("myRadio1").checked = true;
             document.getElementById("myRadio2").checked = false;
             WshShell.Popup("check radio 1");
             }
          else
             {
             document.getElementById("myRadio1").checked = false
             document.getElementById("myRadio2").checked = true;
             WshShell.Popup("check radio 2");
             }
         }
    </script>
     
    <form name="myForm">
        <input type="radio" name="radio" id="myRadio1" />radio 1
        <br />
        <input type="radio" name="radio" id="myRadio2" />radio 2
    </form>
    <script language="JScript">DefaultConfig();</script>
    Merci d'avance pour votre aide...

  2. #2
    Membre éclairé Avatar de reeda
    Formateur en informatique
    Inscrit en
    Août 2006
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 367
    Par défaut
    Bonjour,

    Est ce que tu pourrais nous expliquer ce que tu veux faire exactement, quel est le comportement tu attends de ton script ?

    Bien cordialement

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    function DefaultConfig()
    {
    if(1)
    {
    document.getElementById("myRadio1").checked = true;
    document.getElementById("myRadio2").checked = false;
    WshShell.Popup("check radio 1");
    }
    else
    {
    document.getElementById("myRadio1").checked = false
    document.getElementById("myRadio2").checked = true;
    WshShell.Popup("check radio 2");
    }
    avec if(1), le bloc else ne sera jamais executé!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    Bonjour, et merci de vous être penchés sur le problème !

    avec if(1), le bloc else ne sera jamais executé!
    Ca je sais, comme dit dans mon message d'origine, le if(1) remplace une fonction qui appelle un serveur COM pour retrouver une propriété. J'aurais pu enlever le "if" mais c'était pour marquer que le choix du bouton par défaut n'est pas constant mais dépend de paramètres extérieurs.

    quel est le comportement tu attends de ton script ?
    C'est plutôt simple, je veux qu'à l'ouverture et au rechargement de la page, le bouton 1 soit sélectionné. (Je précise encore: en vrai, ce ne sera pas le bouton 1, mais un des boutons, selon la valeur d'une propriété d'un objet COM, qui est susceptible de changer à tout moment).

    Or, dans le cas présent, si je sélectionne à la main le bouton 2 et que je recharge la page, je me retrouve avec les 2 boutons sélectionnés (ou seulement le bouton 2 si j'ai effacé les cache/formulaires/cookies).

    Ma fonction est bien appelée, je passe par l'état voulu (lors de la popup "check radio 1") puis ensuite tout part de travers...

    Ai-je moyen d'empécher ça ?

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    C'est plutôt simple, je veux qu'à l'ouverture et au rechargement de la page, le bouton 1 soit sélectionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <body onload="
    document.getElementById('myRadio1').checked = true;">

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Par défaut
    Je crois qu'on s'est mal compris, mais en changeant le code ainsi:

    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
    <script language="Javascript">
     
       //Message popup activeX object
       var WshShell = new ActiveXObject("WScript.Shell");
     
     
       function DefaultConfig()
          {
          if(1)
             {
             document.getElementById("myRadio1").checked = true;
             document.getElementById("myRadio2").checked = false;
             WshShell.Popup("check radio 1");
             }
          else
             {
             document.getElementById("myRadio1").checked = false
             document.getElementById("myRadio2").checked = true;
             WshShell.Popup("check radio 2");
             }
         }
    </script>
     
    <body onload="DefaultConfig()">
    <form name="myForm">
        <input type="radio" name="radio" id="myRadio1" />radio 1
        <br />
        <input type="radio" name="radio" id="myRadio2" />radio 2
    </form>
    </body>
    C'est-à-dire en appelant ma fonction sur le "onload", comme suggéré par andry.aime, au lieu de l'appeler à la fin, je ne me retouve plus avec 2 boutons sélectionnés sans raison.

    Merci de votre aide !

    Edit:
    En fait j'appelais ma fonction en bas de ma page HTML, parce que je pensais que les références aux boutons n'existeraient pas dans le "onload" puisque pas encore déclarées.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/05/2006, 18h23
  2. [Conception] HTML et Bases de données
    Par Jukien dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/04/2006, 14h52
  3. Persistance des données en mémoire
    Par giviz dans le forum Architecture
    Réponses: 13
    Dernier message: 21/12/2004, 09h44
  4. [POO] Formulaire HTML + fonction JS = Erreur
    Par bdaboah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2004, 21h59
  5. [Strategie]persistance des données
    Par altropus dans le forum Persistance des données
    Réponses: 6
    Dernier message: 04/11/2004, 04h36

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