Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire liste et texte automatique

Sujet résolu
Anonyme
    29 décembre 2009 à 11:03:26

    Bonjour

    Voilà j'ai une liste déroulante avec différente option et je voudrai ajouter une option "Autre" et que quand l'utilisateur clique dessus un champ "préciser" de type texte apparaisse automatiquement.

    Comment faire?

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2009 à 11:13:59

      Tu peux accéder à un élément par son id avec document.getElementById("son_id")
      Tu peux accéder ou changer le type d'un input avec la propriété type: elem.type="text";
      Tu peux déclencher une fonction javascript sur un select avec l'attribut onchange (et faire référence au select en question avec le mot clef this (ça ne sert qu'à éviter un getElementById qui est plus coûteux) et à la valeur de celui-ci grâce à la propriété value): <select onchange="ma_fonction(this.value)"><option value="autre">autre</option></select>

      Avec tout ça tu devrais pouvoir reconstituer le code qu'il te faut
      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2009 à 11:24:27

        Comme ça ?

        <select name="choix" onchange="autre(this,'autre','yop')">
        <option value="choix1">Choix 1</option>
        <option value="choix2">Choix 2</option>
        <option value="choix3">Choix 3</option>
        <option value="autre">Autre</option>
        </select>
        <span id="yop"></span>
        
        <script>
        /* Paramètres :
        sel : le select concerné
        val : le "value" de l'option "autre"
        el : l'élément ou l'id de l'élément qui contiendra le champ de texte autre
        txt : le texte à afficher avant le champ de texte (optionnel) */
        function autre(sel,val,el,txt) {
          if(typeof el=="string") { el = document.getElementById(el); }
        
          txt = txt || "Précisez : "
        
          if(sel.options[sel.selectedIndex].value==val) {
            el.innerHTML = txt+" <input type='text' name='autre' />";
          } else {
            el.innerHTML = "";
          }
        }
        </script>
        



        (Arf grilled par restimel... Mais bon vu que j'ai fait le larbin, je poste quand même :p )
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          29 décembre 2009 à 11:28:24

          Grand Merci

          C'est top !
          • Partager sur Facebook
          • Partager sur Twitter

          formulaire liste et texte automatique

          × 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