Eu tenho uma seleção múltipla:
<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>
Eu carrego dados do meu banco de dados. Então eu tenho uma string como esta:
var values="Test,Prof,Off";
Como posso definir esses valores na seleção múltipla? Já tentei trocar a string em um array e colocar ela como valor no múltiplo, mas não funciona ...! alguém poderia me ajudar com isso? OBRIGADO!!!
javascript
jquery
multiple-select
Zwen2012
fonte
fonte
$('#strings').val(values.split(','))
. Sem jQuery, o Plain Old Javascript de ŁukaszW.pldocument.getElementById('strings').value = ["Test", "Prof", "Off"]
também funciona em uma linhaem jQuery:
ou em JavaScript puro:
jQuery faz abstrações significativas aqui.
fonte
Basta fornecer à função val jQuery uma matriz de valores:
E para obter os valores selecionados no mesmo formato:
fonte
Solução Pure JavaScript ES6
querySelectorAll
função e divida avalues
string.Array#forEach
para iterar sobre cada elemento davalues
matriz.Array#find
para encontrar a opção correspondente ao valor fornecido.selected
atributo comotrue
.Nota :
Array#from
transforma um objeto semelhante a um array em um array e então você pode usarArray.prototype
funções nele, como localizar ou mapear .fonte
Basicamente, faça um
values.split(',')
e, em seguida, faça um loop pelo array resultante e defina o Select.fonte
Solução Pure JavaScript ES5
Por algum motivo você não usa jQuery nem ES6? Isso pode ajudá-lo:
fonte
fonte
este é um erro em algumas respostas para substituir |
esta correção está correta, mas o | No final, deve ser assim \ |
fonte