Почему мой фильтр не работает, когда я использую класс select2?

#javascript #jquery #select #bootstrap-4 #jquery-select2

Вопрос:

Я пытаюсь решить ошибку, в которой мои ошибки выбора связаны с классом select2.

Вот несколько фотографий, которые показывают, что происходит:

Слева, как это работает, справа, как это должно работать Обратите внимание, что показанные варианты совершенно разные.

вот части моего кода, которые могут быть полезны:

Это HTML — код моего элемента:

 <div class="col">
  <h4>Território a ser retirado</h4>
  <div class="d-flex flex-row">
     <select class="select2">
        <option value="0">Selecione um território</option>
     </select>
     <button id="RetirarExecutivoTerritorio" class="btn color-btn-femsa btn-rounded btn-danger"
          title="Retirar"><i class="fa fa-times-circle fw"></i>
          @* Retirar *@
     </button>
  </div>
</div>
 

В этой части я делаю свои варианты:

 response.Territorios.forEach((elem) => {
  if (elem.CmpExecutivoResponsavel != null) {
    territoriosComExecutivo  = `<option idExecutivo="${elem.CmpExecutivoResponsavel}" value="${elem.CmpCoTerritorio}">${elem.CmpNoTerritorio}</option>`;
  } else {
    territoriosSemExecutivo  = `<option value="${elem.CmpCoTerritorio}">${elem.CmpNoTerritorio}</option>`;
  }
});
 

Здесь я заполняю свой выбор этими опциями:

 ('#TerritorioRetirar').append(territoriosComExecutivo);
 

И, наконец, здесь, где я делаю этот фильтр:

 async HandleExcutivoTerritorioSelecionado() {
$('#EmailExecutivoTerritorioRetirar').change(() => {
  let id_executivo = $('#EmailExecutivoTerritorioRetirar').val();

  // coloca sempre na opção neutra selecionada
  $('#TerritorioRetirar').val('0').change();

  if (id_executivo == '0') {
    $('#TerritorioRetirar').val('0').change();
  } else {
    // percorre todos os options do select, para filtrar apenas os territórios responsáveis
    // para aquele executivo selecionado.
    $('#TerritorioRetirar > option').each(function () {
      let id_territorio = $(this).attr('idExecutivo');

      if (id_territorio == id_executivo) {
        $(this).show();
      } else if (id_territorio != id_executivo amp;amp; id_territorio != undefined) {
        $(this).hide();
      }
    });
  }
});
 

}

Заранее благодарю вас за вашу помощь

Комментарии:

1. Пожалуйста, не могли бы вы показать свой код в текстовом формате вместо фотографий, это действительно помогло бы нам быстро обнаружить проблему.

2. Привет. Создайте фрагмент, воспроизводящий вашу проблему, и я посмотрю 🙂