2008-08-08 19 views
61

Esto obtiene el valor de lo que esté seleccionado en mi menú desplegable.Obtener el texto de un cuadro desplegable

document.getElementById('newSkill').value 

No obstante, no puedo averiguar qué propiedad ir después del texto que se muestra actualmente en el menú desplegable. Intenté "texto" y luego miré W3Schools pero eso no tenía la respuesta, ¿alguien aquí lo sabe?

Para aquellos que no estén seguros, aquí está el HTML para un cuadro desplegable.

<select name="newSkill" id="newSkill"> 
    <option value="1">A skill</option> 
    <option value="2">Another skill</option> 
    <option value="3">Yet another skill</option> 
</select> 

Respuesta

111

Basado en su ejemplo de código HTML, aquí es una manera de conseguir el texto que se muestra de la opción seleccionada en ese momento:

var skillsSelect = document.getElementById("newSkill"); 
var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text; 
+3

Para los que llegaron tarde a la fiesta, hubo varias sugerencias, pero nadie se dio cuenta de que decían .valor donde deberían decir .text, un día confuso para todos nosotros. – Teifion

1

¿Obtiene esto la respuesta correcta?

document.getElementById("newSkill").innerHTML 
+5

Esto le devolverá todo el código HTML para las opciones .. como ' ' –

7
document.getElementById('newSkill').options[document.getElementById('newSkill').selectedIndex].value 

En caso de trabajar

+2

El OP quiere la propiedad .text, en lugar de.valor – ninjaPixel

8

Esto debería devolver el valor de texto del valor seleccionado

var vSkill = document.getElementById('newSkill'); 

var vSkillText = vSkill.options[vSkill.selectedIndex].innerHTML; 

alert(vSkillText); 

Atrezzo: @Tanerax para la lectura de la pregunta, sabiendo lo que se solicitó y la respuesta que antes otros lo descubrieron.

Editar: DownModed, porque en realidad leí una pregunta completamente, y la contesté, el mundo es triste.

4

Esto funciona lo intenté mi yo pensé que puesto aquí por si alguien lo necesita ...

document.getElementById("newSkill").options[document.getElementById('newSkill').selectedIndex].text; 
0
var ele = document.getElementById('newSkill') 
    ele.onchange = function(){ 
      var length = ele.children.length 
      for(var i=0; i<length;i++){ 
       if(ele.children[i].selected){alert(ele.children[i].text)};    
      } 
    } 
2

adjunta un evento de cambio de la selección que obtiene el texto de cada opción seleccionada y las escribe en el div.

Puede usar jQuery es muy cara y exitosa y fácil de usar

<select name="sweets" multiple="multiple"> 
    <option>Chocolate</option> 
    <option>Candy</option> 
    <option>Taffy</option> 
    <option selected="selected">Caramel</option> 
    <option>Fudge</option> 
    <option>Cookie</option> 
</select> 
<div></div> 


$("select").change(function() { 
    var str = ""; 

    $("select option:selected").each(function() { 
    str += $(this).text() + " "; 
    }); 

    $("div").text(str); 
}).change(); 
0
var selectoption = document.getElementById("dropdown"); 
var optionText = selectoption.options[selectoption.selectedIndex].text; 
+0

¿Qué tal un texto para explicar qué está pasando? – nottinhill

+0

Si bien una respuesta de solo código resuelve el problema para la operación, no se recomienda, ya que no proporciona ningún valor para los visitantes futuros, una respuesta que solo proporciona se marcará rápidamente como de "muy baja calidad" y por el resultado de eso se borrará rápidamente [edit] su respuesta para incluir una explicación de lo que hace el código provisto. – Ferrybig

+0

Gracias. Espero que mi respuesta sea fácil de entender para otros. –

0

INTENTE por debajo de esta es la manera más fácil y funciona perfectamente

var newSkill_Text = document.getElementById("newSkill")[document.getElementById("newSkill").selectedIndex]; 
4

Simplemente usted puede utilice Jquery en lugar de Javascript

$("#yourdropdownid option:selected").text(); 

Prueba esto.

0
function getValue(obj) 
{ 
    // it will return the selected text 
    // obj variable will contain the object of check box 
    var text = obj.options[obj.selectedIndex].innerHTML ; 

} 

de fragmentos de HTML

<asp:DropDownList ID="ddl" runat="server" CssClass="ComboXXX" 
    onchange="getValue(this)"> 
</asp:DropDownList> 
Cuestiones relacionadas