2012-01-12 32 views
18

¿Cómo se puede obtener el valor seleccionado de la lista desplegable usando JavaScript? He intentado lo siguiente, pero no funciona.Cómo obtener el valor seleccionado de la lista desplegable en JavaScript

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

¿Qué obtienes en sv? – Kangkan

+1

Puede pegar el contenido html junto con la función javascript utilizada – AmGates

+0

Ver también: http: // stackoverflow.com/questions/1085801/how-to-get-selected-value-of-dropdownlist-using-javascript – Kangkan

Respuesta

25

Funciona bien conmigo.

que tienen el código HTML siguiente:

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

Y el siguiente 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); 
} 

Ver que está utilizando el ID de la derecha. En caso de que lo esté utilizando con ASP.NET, la identificación cambia cuando se representa.

+1

¿Por qué no pasar el elemento de selección a la función directamente? Entonces no necesitarás buscar el elemento seleccionado por id. – Andrej

+0

Si está invocando el script desde el mismo elemento, pasar el elemento es fácil usando 'this'. Sin embargo, desde otros elementos, como en este caso, la buena manera será pasar el elemento id y obtener el elemento en la función. Acabo de actualizar mi respuesta en base a esto. – Kangkan

3

directa value debería funcionar bien:

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

La única razón por la que su código puede fallar es cuando no hay ningún elemento seleccionado, a continuación, los selectedIndex devuelve -1 y se rompe el código.

+0

no está funcionando –

+0

veo que tengo un menú desplegable y selecciono un ítem del mismo y trato de mostrarlo usando alerta pero no estoy alerta de trabajo está vacío –

+0

El código debe estar dentro de algún manejador de eventos, simplemente tenerlo por ahí no ayudará . Publique más de su código y veremos qué hizo mal. –

0

Yo diría change var sv sv = sel.options [sel.selectedIndex] .value; a var sv = sel.options [sel.selectedIndex] .text;

Me funcionó. le dirige a donde encontré mi solución Getting the selected value dropdown jstl

1

La esperanza de que funciona para usted

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

Aquí está un ejemplo sencillo para obtener el valor seleccionado del desplegable en javascript

En primer lugar, el diseño de la interfaz de usuario para desplegable

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

siguiente que necesitamos para escribir secuencias de comandos para obtener el elemento seleccionado

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

Ahora Cuando el cambio en el menú desplegable del elemento seleccionado habrá de alerta.

0

De acuerdo con las especificaciones Html5, debe usar - element.options [e.selectedIndex]. texto

e.g. si tiene caja de selección, como a continuación:

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

puede obtener valor mediante escritura siguiente:

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

probados.

Cuestiones relacionadas