Проверьте выбор из выпадающего списка Bootstrap Multiselect - PullRequest
0 голосов
/ 18 июня 2019

Я создал выпадающее меню множественного выбора, используя Bootstrap Multiselect на основе массива строк. Это выглядит так:

enter image description here

У меня есть массив с именем initCommodities, который я использую при загрузке страницы. Я хотел бы, чтобы все значения в массиве проверялись в выпадающем списке. Вот код, который я использую для создания выпадающего меню:

$('#selectCommodities').html('');

for (var i = 0; i < totalCommodities.length; i++) {

  if (totalCommodities[i].split(" ")[0].length == 1) {
    $('#selectCommodities').append('<optgroup label="' + totalCommodities[i] + '"></optgroup>');
  }


  $('#selectCommodities').append('<option value="' + totalCommodities[i] + '-' + '">' + totalCommodities[i] + '</option>');

}

$('#selectCommodities').multiselect({
  maxHeight: 300,
  includeSelectAllOption: true,
  enableFiltering: true,
  enableClickableOptGroups: false,
  dropUp: true,
  numberDisplayed: 0,
  onChange: function(element, checked) {
    if (checked === true) {
      selectedCommodities.push(element.val())
    } else if (checked === false) {
      selectedCommodities.splice($.inArray(element.val(), selectedCommodities), 1);
    }
    selectedCommodities.sort();
    console.log(selectedCommodities);
  }
});
$('#selectCommodities').multiselect("select", initCommodities);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

totalCommodities - это массив из 81 строки, тогда как initCommodities имеет только 10 значений, которые также появляются в totalCommodities. Я искал решение для этого, и то, что я нашел, было последней строкой моего кода $('#selectCommodities').multiselect("select", initCommodities);. К сожалению, это, похоже, ничего не делает.

Редактировать: я исправил это, удалив + '-' из строки $('#selectCommodities').append('<option value="' + totalCommodities[i] + '-' + '">' + totalCommodities[i] + '</option>');. Я не уверен, почему это исправило это, но это сделало.

...