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 :

Réinitialiser formulaire après retour page précédente


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut Réinitialiser formulaire après retour page précédente
    Bonjour,

    J'ai un formulaire avec des cases à cocher qui envoient vers des pages différentes selon la case/langue choisie. Le script fonctionne très bien, lorsque l'internaure choisit la langue anglaise, il se retrouve sur la page en anglais, s'il choisit la langue française, il se retrouve sur la page en française, etc.

    Mais petit problème : si l'internaute a d'abord choisi le français, et qu'il revient sur la page initiale avec le bouton "page précédente" de son navigateur,
    1) le formulaire indique l'option choisie "français", au lieu du texte "Choisissez la langue". Il peut quand-même changer de langue.

    2) Mais il ne peut pas revenir sur la page "français" (s'il lui prend cette fantaisie) par le formulaire qui ne fonctionne que sur l'événement onchange.

    Je vous joins mon code au cas où vous pourriez me dire quoi ajouter pour pallier ce petit défaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form name="jump">
    <select name="menu" size="1" onchange="document.location.href=this.value;">
    <option selected value="#">Choisissez une langue...</option>
    <option value="msds/msds_fr.php">Fran&ccedil;ais</option>
    <option value="msds/msds_en.php">Anglais</option>
    <option value="msds/msds_es.php">Espagnol</option>
    <option value="msds/msds_fi.php">Finnois</option>
    <option value="msds/msds_pt.php">Portugais</option>
    <option value="msds/msds_sv.php">Su&eacute;dois</option>
    </select>
    </form>
    Autre question : quelle est l'intérêt de mettre ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name="menu" size="1" onchange="location=document.jump.menu.options
    [document.jump.menu.selectedIndex].value;" value="GO">
    à la place de celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="menu" size="1" onchange="document.location.href=this.value;">
    (aucune différence par rapport à mon problème précédent d'ailleurs).

    Merci de vos réponses

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    J'ai fait ce code vite fait en espérant que ca t'aidera
    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
    <script type="text/javascript" language="javascript">
    function test()
    {
    document.jump.menu.options[0].selected = true;
    }
    </script>
    <body bgcolor="#000099" onfocus="test()">
            <form name="jump">
    <select name="menu" size="1" onchange="document.location.href=this.value;">
    <option selected value="#">Choisissez une langue...</option>
    <option value="http://www.google.fr">Fran&ccedil;ais</option>
    <option value="msds/msds_en.php">Anglais</option>
    <option value="msds/msds_es.php">Espagnol</option>
    <option value="msds/msds_fi.php">Finnois</option>
    <option value="msds/msds_pt.php">Portugais</option>
    <option value="msds/msds_sv.php">Su&eacute;dois</option>
    </select>
    </form>
    </body>
    il fonctionne lors de retour...Il fonctionne dès que la focalisation est donné.
    Comme tu as dit que c'est une page que l'on voit qu'une fois donc il devrait pas avoir de problème, non ???

    Pour ta deuxieme question, alors là aucune idée moi je trouve plus simple de mettre le this.value et c'est bon

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    Bonjour Kerod,

    Merci pour cet essai de dépannage. Je n'ai pas vu de différence, malheureusement. Je choisis français, j'arrive à la page français. J'utilise la flèche "précédente" de IE pour retourner au formulaire, "français" est toujours sélectionné et invalide. C'est bien dans le head qu'il faut rajouter le script? (et modifier aussi la balise body).

    Le cas des gens qui reviennent en arrière pour ensuite redemander la même page est certes rare, donc ce n'est pas bien embêtant, sauf que c'est mon client qui m'a signalé ce petit bug, et son propre client qui l'avait découvert !

    Depuis le temps que les webmestres utilisent des listes déroulantes pour envoyer sur diverses pages, personne n'a vu/corrigé ce problème? Peut-être faudrait-il séparer la liste déroulante d'un bouton "GO" qui seul commanderait l'ouverture de la page sélectionnée. Et je transforme le code comment pour ce faire?

    Merci d'avance

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Ben non j'ai testé chez moi et c'est bien dans le body sur l'évènement onfocus

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    salut
    ya un évenement qui est pris en charge avant que la page ne soit afficher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type="text/javascript" language="javascript">
     
    //A noter que loadpage n'a pas de ()
    window.onload = loadpage;
     
    function loadpage(){
    //jai pas testé cette ligne de code par contre, mais bon prennant pour acquis que ca fonctionne
     
     document.jump.menu.options[0].selected = true;
    }
    </script>
    A ben merde, j'ai oublié que tes objet ne sont pas encore créer quand cette méthode de window est appelé... Dsl pour le post inutile mais j'y ai pensé seulement après....le con!!

    bonne journée quand meme

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/08/2008, 08h08
  2. [Cookies] Retour pages précédentes par navigateur
    Par pat06 dans le forum Langage
    Réponses: 9
    Dernier message: 17/01/2008, 15h33
  3. Formulaire et retour page précédente
    Par namstou3 dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2007, 14h14
  4. Retour page précédente
    Par Mister Nono dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/07/2006, 22h14
  5. [2.0] Retour page précédente
    Par davasm dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/06/2006, 16h25

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