Por lo general, utilizo $("#id").val()
para devolver el valor de la opción seleccionada, pero esta vez no funciona. La etiqueta seleccionada tiene la identificaciónaioConceptName
código HTML
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
fuente
fuente
#aioConceptName
value
atributo en esos<option>
s, ¿verdad?$("#aioConceptName").val()
devuelvechoose io
.Respuestas:
Para las opciones desplegables, probablemente desee algo como esto:
La razón por la
val()
que no funciona es porque hacer clic en una opción no cambia el valor del menú desplegable, solo agrega la:selected
propiedad a la opción seleccionada, que es un elemento secundario del menú desplegable.fuente
.val()
debería funcionar en su caso: debe tener un error en otro lugar.val()
por qué no usarvar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... sucede más código ... * /var selectedText = mySelect.find(':selected').text();
Establezca los valores para cada una de las opciones.
$('#aioConceptName').val()
no funcionó porque.val()
devuelve elvalue
atributo Para que funcione correctamente, losvalue
atributos deben establecerse en cada uno<option>
.Ahora puede llamar en
$('#aioConceptName').val()
lugar de que todo este:selected
vudú sea sugerido por otros.fuente
$('#aioConceptName').val()
devuelve nulo / "indefinido"prompt
opción especial<option>Please select an option</option>
. En mi caso, no fue un problema agregar un atributo de valor en blanco,<option value="">Please...</option>
pero creo que en algunos casos no tiene sentido tener un atributo de valor. Pero +1 porque tu redacción de vudú me hizo sonreír.val()
selecciona el envalue
lugar del texto dentro deoption
? Es decir, selecciona en1
lugar deroma
..val()
. Si está buscando manipular / usar el texto, use$(":selected).text()
o establezca el valor y el texto para que sea el mismo.Me topé con esta pregunta y desarrollé una versión más concisa de la respuesta de Elliot BOnneville:
o genéricamente:
Esto le ahorra una llamada jQuery adicional, selecciona todo de una vez y es más claro (mi opinión).
fuente
querySelectorAll()
método DOM nativo (consulte los documentos de jQuery ). Entonces, debería ser más lento que la solución de Eliot ..find(':selected')
ya que le permite llamarlo desde una devolución de llamada adjunta a un evento ... como$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Prueba esto por valor ...
o esto para el texto ...
fuente
Si está en contexto de evento, en jQuery, puede recuperar el elemento de opción seleccionado usando:
$(this).find('option:selected')
así:Editar
Como mencionó PossessWithin , Mi respuesta solo responde a la pregunta: Cómo seleccionar la "Opción" seleccionada.
Luego, para obtener el valor de la opción, use
option.val()
.fuente
$(this).find('option:selected').val()
al final para obtener el valor del elemento de opción o$(this).find('option:selected').text()
para obtener el texto. :)¿Has considerado usar javascript antiguo simple?
Consulte también Obtener un texto / valor de opción con JavaScript
fuente
fuente
Lectura del valor (no el texto) de una selección:
¿Cómo deshabilitar una selección? en ambas variantes, el valor se puede cambiar usando:
UNA
El usuario no puede interactuar con el menú desplegable. Y no sabe qué otras opciones podrían existir.
si
El usuario puede ver las opciones en el menú desplegable, pero todas están deshabilitadas:
En este caso,
$("#Status").val()
solo funcionará para versiones jQuery más pequeñas que1.9.0
. Todas las demás variantes funcionarán.¿Cómo actualizar una selección deshabilitada?
Desde el código detrás, aún puede actualizar el valor en su selección. Está deshabilitado solo para usuarios:
En algunos casos, es posible que necesite disparar eventos:
fuente
fuente
:selected
... val () o text () no funciona correctamente en varias opciones de selección, solo si se produce una matriz comomap()
podría hacerlo.deberías usar esta sintaxis:
Así que prueba este código:
Puedes probar en Fiddle: http://jsfiddle.net/PJT6r/9/
ver acerca de esta respuesta en esta publicación
fuente
Usando jQuery, solo agregue un
change
evento y obtenga el valor o texto seleccionado dentro de ese controlador.Si necesita texto seleccionado, utilice este código:
O si necesita un valor seleccionado, utilice este código:
fuente
Use la
jQuery.val()
función para seleccionar elementos también:fuente
Para cualquiera que descubrió que la mejor respuesta no funciona.
Tratar de usar:
Funciona para mí en proyectos recientes, por lo que vale la pena mirarlo.
fuente
Solo esto debería funcionar:
fuente
Directo y bastante fácil:
Su menú desplegable
Jquery code para obtener el valor seleccionado
fuente
Puede intentar depurarlo de esta manera:
fuente
Para obtener el valor de la etiqueta seleccionada:
Y si desea obtener texto, use este código:
Por ejemplo:
fuente
Si desea obtener el atributo 'valor' en lugar del nodo de texto, esto funcionará para usted:
fuente
intenta con este
fuente
Imagine el DDL como una matriz con índices, está seleccionando un índice. Elija el que desea configurar con su JS.
fuente
Espero que esto también ayude a comprender mejor y ayude a probar esto a continuación,
para más detalles, por favor http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
fuente
Puedes usar
$("#drpList").val();
fuente
para obtener una selección con la misma clase = nombre, puede hacer esto, para verificar si se selecciona una opción de selección.
fuente
Tuve el mismo problema y descubrí por qué no funcionaba en mi caso.
La página html se dividió en diferentes fragmentos html y descubrí que tengo otro campo de entrada que lleva el mismo Id del
select
, lo que hacía que elval()
estuviera siempre vacío.Espero que esto salve el día para cualquiera que tenga un problema similar.
fuente
para usar $ ("# id"). val, debe agregar un valor a la opción como esta:
de lo contrario, puede usar
Deseo que eso ayude ...
fuente
Aquí está la solución simple para este problema.
fuente
var selectedaioConceptName = $('#aioConceptName option:selected').val();
es mejor que usar otro find ()Probablemente su mejor apuesta con este tipo de escenario es utilizar el método de cambio de jQuery para encontrar el valor seleccionado actualmente, de esta manera:
Prefiero este método porque luego puede realizar funciones para cada opción seleccionada en un campo de selección dado.
¡Espero que ayude!
fuente
Por lo general, necesitaría no solo obtener el valor seleccionado, sino también ejecutar alguna acción. Entonces, ¿por qué no evitar toda la magia jQuery y simplemente pasar el valor seleccionado como argumento a la llamada a la acción?
fuente
Puede seleccionar usando la opción exacta seleccionada: a continuación le dará innerText
Mientras que a continuación le dará valor.
fuente