2010-07-03 20 views
65

Este cosas funciona perfectamenteComo llegar texto seleccionado de Javascript Seleccionar cuadro de

<select name="selectbox" onchange="alert(this.value)"> 

Pero quiero para seleccionar el texto. Lo intenté de esta manera

<select name="selectbox" onchange="alert(this.text)"> 

Se muestra indefinido. Encontré cómo usar DOM para obtener texto. Pero quiero hacer esto de esta manera, me refiero a usar solo este valor.

Respuesta

107
this.options[this.selectedIndex].innerHTML 

debería proporcionarle el texto "exhibido" del artículo seleccionado. this.value, como usted dijo, simplemente proporciona el valor del atributo value.

+0

Gracias Esto funciona. – Aajahid

+6

No me gusta. Aunque estoy seguro de que funciona en los navegadores actuales, es una mezcla extraña de código basado en elementos DOM y código de manipulación de formulario antiguo. 'options' devuelve una lista de objetos' Option', que no estoy seguro de que estén especificados en ningún lado para que coincidan con los elementos '

+0

Tim, los objetos 'Option' son los mismos que los objetos' HTMLOptionElement'. Si se opone a utilizar 'options', podría usar alternativamente' children' o 'childNodes' en su lugar (no recuerdo exactamente cuál; ​​creo que ambos funcionan) –

55

Con el fin de obtener el valor del elemento seleccionado se puede hacer lo siguiente:

se accede
this.options[this.selectedIndex].text 

Aquí los diferentes options de la selección, y la SelectedIndex se utiliza para elegir el seleccionado, entonces su text se está accediendo.

Más información sobre la selección DOM here.

+0

'this.options [this.selectedIndex] .value' es exactamente lo mismo que' this.value', lo siento. –

+0

@Delan Azabani - respuesta actualizada. – Oded

+0

Cuando uso this.options [this.SelectedIndex] .text error console dice - Error: this.options [this.SelectedIndex] no está definido – Aajahid

1

Sé que nadie está pidiendo una solución jQuery aquí, pero podría valer la pena mencionar que con jQuery sólo puede pedir: $('#selectorid').val()

+1

Eso solo funcionará si el valor de la opción no está establecido. – profitehlolz

28

Inténtelo este código:

$("#YourSelect>option:selected").html() 
+0

super fácil! ¡Gracias! – Louie

+0

¡Así que gracias! esto devuelve el valor del elemento seleccionado en el cuadro combinado –

23

sólo tiene que utilizar

$('#SelectBoxId option:selected').text(); Para conseguir el texto que se enumeran

$('#SelectBoxId').val(); Para ser elegida valor del Índice

+1

Si bien esto funciona perfectamente para jQuery, el OP solo enumeró javascript como una etiqueta original. Aún así, +1 ya que muchas personas usan jQuery. – Sablefoste

Cuestiones relacionadas