Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
Javascript Devolviendo valores con Form Optgroup padre

Me gustaría devolver los valores de opción seleccionados en un cuadro de selección de opciones múltiples Funciona, no tengo etiquetas de grupo de opciones. Tan pronto como agrego estas etiquetas, no puedo obtener los valores secundarios. Estoy seguro de que esta es una pregunta tonta, pero no puedo encontrar la sintaxis correcta para obtener la matriz correcta, que es dropdown.options

 $('#mydropdown option').click(function(evt) { var selectedOption = evt.target; var dropdown = this.parentNode; queue.add(selectedOption.value); Array.from(dropdown.options).forEach(function(option) { if (!option.selected) { queue.remove(option.value); } }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <select id="mydropdown" multiple="multiple"> <optgroup label="Group 1"> <option value="optionx Fruits" selected>Fruits</option> <option value="optionx Vegetables">Vegetables</option> </optgroup> <optgroup label="Group 2"> <option value="optionx Nuts">Nuts</option> <option value="optionx Meats">Meats</option> </optgroup> </select>

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Podemos simplemente crear un nuevo conjunto cada vez

Esto es importante si desea que el conjunto contenga solo los seleccionados.

Si desea que el conjunto contenga lo que el usuario seleccionó y MANTENERLO cuando el usuario deseleccione, simplemente agregue

También observe que activé el cambio para inicializar el conjunto al cargar

 let queue; $('#mydropdown').on("change", function(evt) { queue = new Set(); $("option:selected",this).each(function() { queue.add(this.value) }); console.log("changed -------") for (const item of queue) console.log(item) }).change();
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <select id="mydropdown" multiple="multiple"> <optgroup label="Group 1"> <option value="optionx Fruits" selected>Fruits</option> <option value="optionx Vegetables">Vegetables</option> </optgroup> <optgroup label="Group 2"> <option value="optionx Nuts">Nuts</option> <option value="optionx Meats">Meats</option> </optgroup> </select>

SI desea mantener el orden seleccionado, solo tendrá que agregar y luego eliminar

 let queue = new Set(); $('#mydropdown').on("click", function(evt) { $(this).find("option").each(function() { queue.add(this.value); if (!this.selected) queue.delete(this.value) }) console.log("changed -------") for (const item of queue) console.log(item) }).click();
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <select id="mydropdown" multiple="multiple"> <optgroup label="Group 1"> <option value="optionx Fruits" selected>Fruits</option> <option value="optionx Vegetables">Vegetables</option> </optgroup> <optgroup label="Group 2"> <option value="optionx Nuts">Nuts</option> <option value="optionx Meats">Meats</option> </optgroup> </select>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Al hacer clic, su nodo principal se convierte en grupo de opciones

 var dropdown = this.parentNode;

por lo que debe configurar

 var dropdown = this.parentNode.parentNode;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda