2010-03-29 15 views
6

J'ai un formulaire dans une page Web où je souhaite placer l'élément sélectionné dans une liste déroulante dans une boîte de test. Le code que j'ai jusqu'à présent est la suivante:HTML - Mettre le contenu du tag SELECT dans INPUT type = "text"

  <form action = ""> 
       <select name = "Cities"> 
        <option value="----">--Select--</option> 
        <option value="roma">Roma</option> 
        <option value="torino">Torino</option> 
        <option value="milan">Milan</option> 
       </select> 
       <br/> 
       <br/> 
       <input type="button" value="Test"> 
       <input type="text" name="SelectedCity" value="" /> 
      </form> 

Je pense que je dois utiliser javascript .... mais aucune aide? :-)

merci

Répondre

4

Vous pouvez ajouter JavaScript directement dans le bouton:

<input type="button" onclick=" 
    var s = this.form.elements['Cities']; 
    this.form.elements['SelectedCity'].value = 
     s.options[s.selectedIndex].textContent"> 
+0

merci .. ce travail quand on change la valeur de la liste déroulante mais j'ai besoin de mettre la valeur une fois que je pousse le bouton – mouthpiec

+0

Ignorer la mise à jour précédente, je vous ai mal lu. Maintenant, cela devrait fonctionner comme vous le souhaitez. – jholster

2
<script type="text/javascript"> 
    function OnDropDownChange(dropDown) { 
     var selectedValue = dropDown.options[dropDown.selectedIndex].value; 
     document.getElementById("txtSelectedCity").value = selectedValue; 
    } 
</script> 

     <form action = ""> 
      <select name = "Cities" onChange="OnDropDownChange(this);"> 
       <option value="----">--Select--</option> 
       <option value="roma">Roma</option> 
       <option value="torino">Torino</option> 
       <option value="milan">Milan</option> 
      </select> 
      <br/> 
      <br/> 
      <input type="button" value="Test"> 
      <input type="text" id="txtSelectedCity" name="SelectedCity" value="" /> 
     </form> 
+0

Vous n'avez pas besoin de préfixer les gestionnaires d'événements inline avec 'javascript:'. – jholster

+0

Notez également que 'getElementsByName()' renvoie une liste au lieu d'un seul noeud, vous devez donc accéder au premier élément: '.getElementsByName ('SelectedCity') [0] .value = ...' – jholster

+0

Vous avez raison, Merci d'avoir fait remarquer cela. Suppression du préfixe "javascript:" et modification du script afin que vous puissiez l'extraire de l'élément exact en utilisant un tel identifiant au lieu d'une liste d'éléments. – Nurvx

2

En fait, vous ne avez pas besoin de JS pour ce faire, tout simplement HTML peut le faire pour vous comme suit:

<form action="a.php" method="post"> 
    <select name = "Car"> 
    <option value="BMW">BMW</option> 
    <option value="AUDI">AUDI</option> 
    </select> 
    <input type="submit" value="Submit"> 
</form>