2012-01-12 12 views
18

Come si può ottenere il valore selezionato dall'elenco a discesa utilizzando JavaScript? Ho provato quanto segue ma non funziona.Come ottenere il valore selezionato dall'elenco a discesa in JavaScript

var sel = document.getElementById('select1'); 
var sv = sel.options[sel.selectedIndex].value; 
alert(sv); 
+0

cosa ottieni in sv? – Kangkan

+1

È possibile incollare il contenuto html insieme alla funzione javascript utilizzata – AmGates

+0

Vedere anche: http: // stackoverflow.it/questions/1085801/how-to-get-selected-value-of-dropdownlist-using-javascript – Kangkan

risposta

25

Sta funzionando bene con me.

Ho il seguente codice HTML:

<div> 
    <select id="select1"> 
     <option value="1">test1</option> 
     <option value="2" selected="selected">test2</option> 
     <option value="3">test3</option> 
    </select> 
    <br/> 
    <button onClick="GetSelectedItem('select1');">Get Selected Item</button> 
</div> 

E il seguente JavaScript:

function GetSelectedItem(el) 
{ 
    var e = document.getElementById(el); 
    var strSel = "The Value is: " + e.options[e.selectedIndex].value + " and text is: " + e.options[e.selectedIndex].text; 
    alert(strSel); 
} 

Vedi che si sta utilizzando il diritto id. Se lo si utilizza con ASP.NET, l'ID cambia quando viene eseguito il rendering.

+1

Perché non passare direttamente l'elemento select nella funzione? Quindi non dovrai cercare l'elemento select per id. – Andrej

+0

Se stai invocando lo script dallo stesso elemento, passare l'elemento è semplice usando 'this'. Tuttavia, da altri elementi, come in questo caso, il modo migliore sarà passare l'id dell'elemento e ottenere l'elemento nella funzione. Ho appena aggiornato la mia risposta sulla base di questo. – Kangkan

3

diretto value dovrebbe funzionare bene:

var sv = sel.value; 
alert(sv); 

L'unico motivo per il vostro codice potrebbe fallire è quando non c'è elemento selezionato, quindi le selectedIndex restituisce -1 e il codice si rompe.

+0

non funziona –

+0

vedere ho il menu a discesa e seleziono un elemento da esso e provando a visualizzarlo usando l'avviso ma non funziona l'avviso è vuoto –

+0

Il codice deve essere all'interno di qualche gestore di eventi, solo averlo in giro non aiuterà . Pubblica più del tuo codice e vedremo cosa hai fatto di sbagliato. –

0

Direi change var sv = sel.options [sel.selectedIndex] .value; in var sv = sel.options [sel.selectedIndex] .text;

Ha funzionato per me. vi dirigerà verso dove ho trovato la mia soluzione Getting the selected value dropdown jstl

1

Spero che sta lavorando per voi

function GetSelectedItem() 
{ 
    var index = document.getElementById(select1).selectedIndex; 

    alert("value =" + document.getElementById(select1).value); // show selected value 
    alert("text =" + document.getElementById(select1).options[index].text); // show selected text 
} 
0

Ecco un semplice esempio per ottenere il valore selezionato di discesa in javascript

Per prima cosa progettare l'interfaccia utente per discesa

<div class="col-xs-12"> 
<select class="form-control" id="language"> 
    <option>---SELECT---</option> 
    <option>JAVA</option> 
    <option>C</option> 
    <option>C++</option> 
    <option>PERL</option> 
</select> 

Poi abbiamo bisogno di scrivere script per ottenere l'elemento selezionato

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#language').change(function() { 
     var doc = document.getElementById("language"); 
     alert("You selected " + doc.options[doc.selectedIndex].value); 
    }); 
}); 

Ora Quando il cambiamento a discesa la voce selezionata sarà vigile.

0

In base alle specifiche Html5 è necessario utilizzare - element.options [e.selectedIndex]. testo

ad es. se avete casella di selezione come di seguito:

<select id="selectbox1"> 
    <option value="1">First</option> 
    <option value="2" selected="selected">Second</option> 
    <option value="3">Third</option> 
</select> 
<br/> 
<button onClick="GetItemValue('selectbox1');">Get Item</button> 

è possibile ottenere valore mediante script seguente:

<script> 
function GetItemValue(q) { 
    var e = document.getElementById(q); 
    var selValue = e.options[e.selectedIndex].text ; 
    alert("Selected Value: "+selValue); 
} 
</script> 

provato e testato.

Problemi correlati