Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script qui ne fonctionne pas sur Safari

Sujet résolu
    5 novembre 2008 à 16:56:04

    Bonjour,
    Dans mon formulaire d'inscription, j'affiche une aide expliquant à quoi correspond chaque champ. Lorsque le visiteur sélectionne un champ, j'affiche le bloc correspondant qui contient l'aide.
    Pour cela, j'utilise le javascript avec les attributs onfocus et onblur.
    Voici ce que ça donne (je met seulement un champ c'est la même principe pour les autres):

    <label for="pseudo">Pseudo : </label><br />
    <input type="text" name="pseudo" id="pseudo" maxlength="12" value ="<?php echo $_POST['pseudo']; ?>" onfocus="document.getElementById('info_pseudo').style.display='block';" onblur="document.getElementById('info_pseudo').style.display='none';" /><br />
    


    Ce code fonctionne bien sous Safari et Firefox, mais le problème intervient lorsque l'on clique sur une liste à puce (ce code-ci ne marche pas sur Safari mais marche sur Firefox) :

    <input type="radio" name="choix_pays" value="France" id="france" onfocus="document.getElementById('info_france').style.display='block';" onblur="document.getElementById('info_france').style.display='none';"/><label for="france"><img src="img/new_design/elements/f.png" alt="" /> France</label><br />
    
    etc..
    


    Donc la quand je sélectionne le pays France, les infos ne sont pas affichées alors que ce code fonctionne parfaitement sur Firefox, et même sur IE :p

    Je ne suis pas super doué en javascript, alor si vous pouvez m'éclairez...

    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2008 à 17:45:18

      Si ce que tu veux détecter est un click sur un élément de type radio ou checkbox, c'est à dire un changement de leur valeur, onfocus n'est pas le bon moyen de faire cela. Utiliser plutôt onChange.
      Cependant, ce que tu veux, c'est afficher une info, ce serait plus utile de le faire AVANT que l'utilisateur aie entré une valeur, et par conséquent le click (ou onfocus) n'est pas le bon attribut, ça implique d'obliger l'utilisateur à faire un choix puis ensuite lui dire ce qu'il a choisi :p
      Pour faire intuitif, tu devrais plutôt afficher l'aide lors du survol de l'élément (onMouseOver).
      • Partager sur Facebook
      • Partager sur Twitter
        5 novembre 2008 à 20:49:29

        Ah, oui effectivement ça marche mieux avec onChange ^^.
        C'est vrai que les informations sont affichées après le click, mais le visiteur peut toujours modifié son choix avant de valider le formulaire. Avec un onMouseOver les informations ne seront pas assez "stables" du fait qu'elles disparaitront dès que la souris sort de l'élément.
        • Partager sur Facebook
        • Partager sur Twitter

        Script qui ne fonctionne pas sur Safari

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown