HTML Bootstrap: Setar o valor no combobox select2

1 resposta Resolvido
javaprogramaçãojavascript
F

Fala Galera, preciso de ajuda aqui

Tenho uma tabela onde tem um botão editar, ao clicar em editar na linha dispara uma função anônima onde abre um modal e preenche todos os campos do modal com os dados da linha da tabela que cliquei, está tudo ok, exceto pelo elemento “select2” que é um combobox, como poderia setar a seleção do texto deste elemento? vejam:

Essa é minha tabela, meu botão Editar e o valor que tenho que setar no combobox:

Aqui está o trecho de código que faz isso:

E aqui é o modal que abre preenchido quando clico no botão editar acima, repare que tudo vem preenchido corretamente menos o combobox setor, ele sempre vem preenchido com o primeiro texto da lista:

Aqui está o trecho deste código do modal:

Já tentei:

document.getElementById(‘setor_Usuario_Alterar’).textContent = ‘<%= usuario.setor %>’;

document.getElementById(‘setor_Usuario_Alterar’).value = ‘<%= usuario.setor %>’;

document.getElementById(‘setor_Usuario_Alterar’).options[0].text = ‘<%= usuario.setor %>’;

document.getElementById(‘setor_Usuario_Alterar’).options[ ‘<%= usuario.setor %>’].text;

Detalhe importante:
Lá no final da página tem o script que inicia este elemento do AdminLTE 3, to achando que é isso que zera o combobox, porque se tiro esse script ai funciona, porém esse script é o que faz o esquema de filtrar a lista dentro do componente:

<script type="text/javascript">
  $(function () {
    //Initialize Select2 Elements
    $('.select2').select2()
  });
</script>

1 Resposta

F
Solucao aceita

Consegui aqui pessoal:

Mantenho a inicialiação do elemento select2 lá no final da página:

image

Lá na tabela no botão editar que tem função anônima que popula os campos do modal é que está a solução, veja o trecho do código que seto o combobox setor:

Agora sim, tudo funcionando.

Fonte: https://select2.org/programmatic-control/add-select-clear-items

Criado 7 de abril de 2020
Ultima resposta 8 de abr. de 2020
Respostas 1
Participantes 1