Me topé con la biblioteca bsmultiselect para un proyecto. La interfaz se ve bien, pero parece que la documentación necesita más trabajo, por lo tanto, no puedo averiguar cómo devolver la lista de elementos seleccionados por el usuario. Agradecería si alguien pudiera darme una pista al menos.
aquí está mi código por ahora:
const instSel = document.getElementById('instrument-select'); let x = new xhr(); x.get("GET", "instruments.json", (rsp) => { instr = JSON.parse(rsp) for (i in instr) { let optGr = document.createElement("optgroup"); optGr.setAttribute("label", instr[i]["name"]); for (x in instr[i]["instruments"]) { let opt = document.createElement("option"); opt.setAttribute('value', instr[i]["instruments"][x]); opt.setAttribute('class', 'dropdown-item'); opt.textContent = instr[i]["instruments"][x]; optGr.appendChild(opt); } instSel.appendChild(optGr); console.log(optGr); } bs = dashboardcode.BsMultiSelect("#instrument-select"); console.log(bs); }); document.body.addEventListener('dblclick', () => { console.log(bs.getPicks()); // this returns the html only });¡Gracias de antemano por cualquier ayuda!
Gestionado para recopilar los datos mediante el uso del evento e.target .
instSel.onchange = (e) => { // loop through all the items for (let i = 0; i < e.target.length; i++;) { if (e.target[i].selected) { // if the item is selected console.log(e.target[i].textContent) } } }