¿Cómo obtengo el valor seleccionado de una lista desplegable usando JavaScript?
Intenté los siguientes métodos, pero todos devuelven el índice seleccionado en lugar del valor:
var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
javascript
html-select
Mano de fuego
fuente
fuente
Respuestas:
Si tiene un elemento de selección que se ve así:
Ejecutando este código:
Lo haría
strUser
ser2
. Si lo que realmente quieres estest2
, entonces haz esto:Lo que haría
strUser
sertest2
fuente
onchange
:)var strUser = e.options[e.selectedIndex].value;
¿Por qué no solo?var strUser = e.value ?
var e = document.getElementById("ddlViewBy").value;
e.target.options[e.target.selectedIndex].text
no sé por qué está mal en todas las respuestas aquí ..JavaScript simple:
jQuery:
AngularJS : ( http://jsfiddle.net/qk5wwyct ):
fuente
element.options[e.selectedIndex].value
debe serelement.options[element.selectedIndex].value
e.target.options[e.target.selectedIndex].text
no sé por qué está mal en todas las respuestas aquí ..Esto es correcto y debería darle el valor. ¿Es el texto lo que buscas?
Entonces tienes claro la terminología:
Esta opción tiene:
fuente
e.target.options[e.target.selectedIndex].text
no sé por qué está mal en todas las respuestas aquí ..El siguiente código muestra varios ejemplos relacionados con la obtención / colocación de valores de los campos de entrada / selección utilizando JavaScript.
Enlace fuente
Trabajo Javascript y jQuery Demostración
El siguiente script obtiene el valor de la opción seleccionada y la coloca en el cuadro de texto 1
El siguiente script obtiene un valor de un cuadro de texto 2 y alerta con su valor
El siguiente script llama a una función desde una función
fuente
onchange=run(this.value)
o(this.text)
puede ser más beneficioso.fuente
Si alguna vez se encuentra con un código escrito exclusivamente para Internet Explorer, puede ver esto:
Ejecutar lo anterior en Firefox et al le dará un error 'no es una función', porque Internet Explorer le permite salirse con la suya usando () en lugar de []:
La forma correcta es usar corchetes.
fuente
Cualquier campo de entrada / formulario puede usar una palabra clave "this" cuando está accediendo desde el interior del elemento. Esto elimina la necesidad de ubicar un formulario en el árbol dom y luego ubicar este elemento dentro del formulario.
fuente
Es probable que los principiantes quieran acceder a los valores de una selección con el atributo NAME en lugar del atributo ID. Sabemos que todos los elementos de formulario necesitan nombres, incluso antes de que obtengan identificadores.
Entonces, estoy agregando el
getElementByName()
solución solo para que los nuevos desarrolladores la vean también.NÓTESE BIEN. los nombres de los elementos del formulario deberán ser únicos para que su formulario pueda utilizarse una vez publicado, pero el DOM puede permitir que un nombre sea compartido por más de un elemento. Por esa razón, considere agregar ID a los formularios si puede, o sea explícito con los nombres de los elementos del formulario
my_nth_select_named_x
ymy_nth_text_input_named_y
.Ejemplo usando
getElementByName
:fuente
Hay dos formas de hacer esto, ya sea usando JavaScript o jQuery.
JavaScript:
O
jQuery:
fuente
Solo usa
$('#SelectBoxId option:selected').text();
para obtener el texto como aparece$('#SelectBoxId').val();
para obtener el valor del índice seleccionadofuente
Las respuestas anteriores aún dejan margen de mejora debido a las posibilidades, la intuición del código y el uso de
id
versusname
. Se puede obtener una lectura de tres datos de una opción seleccionada: su número de índice, su valor y su texto. Este código simple de navegador cruzado hace las tres cosas:Demostración en vivo: http://jsbin.com/jiwena/1/edit?html,output .
id
debe usarse para fines de maquillaje. Para fines de forma funcional,name
sigue siendo válido, también en HTML5, y aún debe utilizarse. Por último, tenga en cuenta el uso de corchetes cuadrados versus redondos en ciertos lugares. Como se explicó anteriormente, solo (las versiones anteriores de) Internet Explorer aceptarán las redondas en todos los lugares.fuente
Usando jQuery:
fuente
Otra solución es:
fuente
Ejecutando ejemplo de cómo funciona:
Nota: Los valores no cambian a medida que cambia el menú desplegable, si necesita esa funcionalidad, se implementará un cambio onClick.
fuente
Puedes usar
querySelector
.P.ej
fuente
Tengo una visión un poco diferente de cómo lograr esto. Por lo general, hago esto con el siguiente enfoque (es una forma más fácil y funciona con todos los navegadores hasta donde yo sé):
fuente
En 2015, en Firefox , lo siguiente también funciona.
fuente
Para ir junto con las respuestas anteriores, así es como lo hago de una sola vez. Esto es para obtener el texto real de la opción seleccionada. Hay buenos ejemplos para obtener el número de índice ya. (Y para el texto, solo quería mostrarlo de esta manera)
En algunos casos, es posible que necesite usar paréntesis, pero esto sería muy raro.
Dudo que esto se procese más rápido que la versión de dos líneas. Simplemente me gusta consolidar mi código tanto como sea posible.
Desafortunadamente, esto aún recupera el elemento dos veces, lo que no es ideal. Un método que solo tome el elemento una vez sería más útil, pero aún no lo he descubierto, en lo que respecta a hacer esto con una línea de código.
fuente
Aquí hay una línea de código JavaScript:
Suponiendo que el menú desplegable llamado lista
name="list"
e incluido en un formulario con nombre de atributoname="form1"
.fuente
var as = document.form1.ddlViewBy.value;
..."Deberías estar usando
querySelector
para lograr esto. Esto también estandariza la forma de obtener valor de los elementos del formulario.var dropDownValue = document.querySelector('#ddlViewBy').value;
Violín: https://jsfiddle.net/3t80pubr/
fuente
No sé si soy el que no responde bien la pregunta, pero esto simplemente funcionó para mí: usar un evento onchange () en su html, por ejemplo.
// javascript
Esto le dará el valor que esté en el menú desplegable de selección por clic
fuente
La forma más sencilla de hacer esto es:
fuente
Aquí hay una manera fácil de hacerlo en una función onchange:
event.target.options[event.target.selectedIndex].dataset.name
fuente
Solo haz:
document.getElementById('idselect').options.selectedIndex
Entonces obtendré un valor de índice de selección, comenzando en 0.
fuente
Tratar
Mostrar fragmento de código
fuente
Crea un menú desplegable con varias opciones (¡tantas como quieras!)
Hice un poco gracioso. Aquí está el fragmento de código:
yay el fragmento funcionó
fuente