2010-03-29 10 views
6

Mam formularz na stronie, na którym chciałbym umieścić wybrany element z rozwijanej listy w polu testowym. Kod, który mam do tej pory, jest następujący:HTML - Umieść zawartość znacznika SELECT w typie INPUT = "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> 

Myślę, że muszę używać javascript .... ale jakiejkolwiek pomocy? :-)

dzięki

Odpowiedz

4

Możesz dodać JavaScript bezpośrednio do przycisku:

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

dziękuję .. ta praca, gdy zmienisz wartość listy rozwijanej, ale muszę umieścić wartość po naciśnięciu przycisku – mouthpiec

+0

Zignoruj ​​poprzednią aktualizację, źle Cię odczytałem. Teraz powinno działać tak, jak potrzebujesz. – 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

Nie trzeba poprzedzać wbudowanymi procedurami obsługi zdarzeń za pomocą 'javascript:'. – jholster

+0

Należy również zauważyć, że 'getElementsByName()' zwraca listę zamiast pojedynczego węzła, więc musisz uzyskać dostęp do pierwszego elementu: '.getElementsByName ('SelectedCity') [0] .value = ...' – jholster

+0

Masz rację, dzięki za wskazanie tego. Usunięto prefiks "javascript:", a także zmodyfikowano skrypt, aby można było pobrać go z dokładnego elementu za pomocą takiego identyfikatora zamiast listy elementów. – Nurvx

2

W rzeczywistości nie trzeba żadnych JS to zrobić, po prostu HTML może zrobić dla w następujący sposób:

<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> 
Powiązane problemy