2010-03-29 8 views
6

Ho un modulo in una pagina Web in cui desidero inserire l'elemento selezionato in un elenco a discesa in una casella di test. Il codice che ho fino ad ora è la seguente:HTML - Inserisci il contenuto del tag SELECT in 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> 

Penso di aver bisogno di usare JavaScript .... ma di aiuto? :-)

grazie

risposta

4

È possibile aggiungere JavaScript direttamente nel pulsante:

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

grazie .. questo lavoro quando si cambia il valore dell'elenco a discesa ma ho bisogno di mettere il valore una volta premo il pulsante – mouthpiec

+0

Ignora l'aggiornamento precedente, ho letto erroneamente te. Ora dovrebbe funzionare come è necessario. – 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

Non è necessario anteporre i gestori eventi in linea con 'javascript:'. – jholster

+0

Si noti inoltre che 'getElementsByName()' restituisce una lista invece di un singolo nodo, quindi è necessario accedere al primo elemento di essa: '.getElementsByName ('SelectedCity') [0] .value = ...' – jholster

+0

Hai ragione, Grazie per la segnalazione. Rimosso il prefisso "javascript:" e modificato anche lo script in modo che tu possa afferrarlo dall'elemento esatto usando tale ID invece di un elenco di elementi. – Nurvx

2

In realtà non è necessario alcun JS di farlo, semplicemente HTML può farlo per tu come segue:

<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>