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
querySelectorAll
función y divida lavalues
cadena.Array#forEach
para iterar sobre cada elemento de lavalues
matriz.Array#find
para encontrar la opción que coincida con el valor dado.selected
atributo entrue
.Nota :
Array#from
transforma un objeto similar a una matriz en una matriz y luego puede usarArray.prototype
funciones 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