Basado en documentos de Semantic-UI, https://semantic-ui.com/modules/dropdown.html#multiple-selections
Tengo el siguiente código dentro de la plantilla angular2:
<select id="thickness" name="thick" [(ngModel)]="form.thickness" multiple="multiple" class="ui multiple dropdown selection"> <option value="">Выбрать</option> <option value="100">100 mm</option> <option value="150">150 mm</option> <option value="200">200 mm</option> <option value="250">250 mm</option> <option value="300">300 mm</option> <option value="375">375 mm</option> <option value="400">400 mm</option> </select> Me gustaría obtener una matriz de valores seleccionados de Select a modelo angular form.thickness
Sin embargo, obtengo una matriz vacía. dentro ngOnInit tengo $('#thickness').dropdown();
console.log($('#thickness').dropdown('get value')); da una matriz vacía;
¿Cómo obtener valores de la selección múltiple desplegable?
Sugiriendo que su código se ve así:
<div class="ui multiple selection dropdown"> <i class="dropdown icon"></i> <div class="default text">Tag Multiple Categories</div> <select multiple="" id="multi-select"> <option value="">Categories</option> <option value="datastructure">Data Structure</option> <option value="stack">Stack</option> <option value="queue">Queue</option> </select> </div> </div>lo siguiente devolverá una matriz de valores seleccionados:
$("#multi-select").dropdown("get value")Producción:
["pila", "cola"]
Nota:
Asegúrese de no tener un campo de entrada oculto en el html; de lo contrario, devuelve un valor de cadena en lugar de una matriz de valores
Todavía puedes usar select. He aquí cómo hacerlo en Aurelia: form.html:
<select id="thickness" name="thick" multiple="" class="ui multiple dropdown selection" value.bind="thickness_selected"> <option value="">Выбрать</option> <option value="100">100 mm</option> <option value="150">150 mm</option> </select>formulario.ts:
export class form { thickness_selected: number[] = []; submit() { const self = this; for (let id of self.thickness_selected) { console.log(id); } } }Resuelto reescribiendo el código a:
<div id="thickness" class="ui multiple selection dropdown"> <input name="thick" type="hidden"> <i class="dropdown icon"></i> <div class="default text">Выбрать</div> <div class="menu"> <div class="item" data-value="100">100 mm</div> <div class="item" data-value="150">150 mm</div> <div class="item" data-value="200">200 mm</div> <div class="item" data-value="250">250 mm</div> <div class="item" data-value="300">300 mm</div> <div class="item" data-value="375">375 mm</div> <div class="item" data-value="400">400 mm</div> </div> </div>