Tengo múltiples campos de selección cada uno con múltiples opciones. Entonces, al usar jquery para obtener el contenido de las opciones seleccionadas respectivas, podría obtener el contenido de las opciones seleccionadas. Sin embargo, esto funciona para el primer campo de selección. Pero, no funciona para otros. Otros siguen haciendo referencia al contenido del primer campo de selección de opciones seleccionadas, en lugar del propietario. ¡Por favor guíame! ¡Gracias!
My Select fields
<select id="resource_dd" name="resource_dd">
<option selected="selected" value="nil1">No resources.</option>
<option value="1">Week1</option>
<option value="2">Resource1</option>
</select>
<select id="module_dd" name="module_dd">
<option selected="selected" value="nil2">No restriction.</option>
<option value="1">IT1234</option>
<option value="2">IT2345</option>
</select>
Jquery para recuperar el contenido seleccionado.
$("#module_dd").change(function ( event ) {
var option = $("this").children();
var module_id = $(option+":selected").val(); //module_id get 'nil1' as content instead of nil2
});
5 respuestas
Simplemente intente esto, le dará el valor seleccionado.
$("#module_dd").change(function ( event ) {
var module_id = $(this).val();
});
En primer lugar, debería decir $(this)
en lugar de $("this")
.
Segundo, $(event.target)
es probablemente más apropiado aquí.
Tercero, usar .children
como en $(event.target).children(":selected")
te dará lo que quieres.
Consulte la respuesta de Eli Courtwright, pero además de eso, debe hacer algo como $("select")
o $("#module_dd, #resource_dd")
para apuntar a ambos campos select
.
Código de problema
var option = $("this").children();
var module_id = $(option+":selected").val();
No puede concatenar una cadena de selector a un objeto de colección jQ. Debe filtrar la colección de opciones para aquellos que se seleccionan por:
var option = $( this ).children(":selected");
O
var option = $( this ).children();
var module_id = option.filter(":selected").val();
Esto sucede porque hace referencia a $("#module_dd")
.
Debe agregar otra función y cambiarla a $("#resource_dd")
para obtener el otro campo select
.
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.