Tengo una selección múltiple:
<select name='strings' id="strings" multiple style="width:100px;">
<option value="Test">Test</option>
<option value="Prof">Prof</option>
<option value="Live">Live</option>
<option value="Off">Off</option>
<option value="On">On</option>
</select>
Carga datos de mi base de datos. Entonces tengo una cadena como esta:
var values="Test,Prof,Off";
¿Cómo puedo establecer estos valores en la selección múltiple? Ya intenté cambiar la cadena en una matriz y ponerla como valor en el múltiplo, ¡pero no funciona ...! ¿Puede alguien ayudarme con esto? ¡¡¡GRACIAS!!!
javascript
jquery
multiple-select
Zwen2012
fuente
fuente

$('#strings').val(values.split(',')). Sin jQuery, el antiguo Javascript simple de ŁukaszW.pldocument.getElementById('strings').value = ["Test", "Prof", "Off"]también se logra en una sola líneaen jQuery:
o en JavaScript puro:
jQuery hace una abstracción significativa aquí.
fuente
Simplemente proporcione la función jQuery val con una matriz de valores:
Y para obtener los valores seleccionados en el mismo formato:
fuente
Solución Pure JavaScript ES6
querySelectorAllfunción y divida lavaluescadena.Array#forEachpara iterar sobre cada elemento de lavaluesmatriz.Array#findpara encontrar la opción que coincida con el valor dado.selectedatributo entrue.Nota :
Array#fromtransforma un objeto similar a una matriz en una matriz y luego puede usarArray.prototypefunciones en él, como buscar o mapa .fuente
Básicamente, haz un
values.split(',')y luego recorre la matriz resultante y establece la opción Seleccionar.fuente
Solución Pure JavaScript ES5
¿Por alguna razón no usas jQuery ni ES6? Esto podría ayudarte:
fuente
fuente
esto es un error en algunas respuestas para reemplazar |
esta corrección es correcta pero el | Al final, debería verse así \ |
fuente