Bootstrap select не возвращает clickedIndex для change.bs.select - PullRequest
0 голосов
/ 21 марта 2019

Я использую Плагин Bootstrap Select .

<div class="form-group col-md-6">
    <select class="selectpicker form-control" id="veicoli" data-style="btn-transparent" data-title="Veicoli" data-selected-text-format="static" data-live-search="true" multiple>
        <option value="1">EA018YE</option>
        <option value="11">FM088KP</option>
        <option value="17">DT590LW</option>
        <option value="21">DB814RZ</option>
        <option value="33">DM408DG</option>
        <option value="40">EH942GJ</option>
    </select>
</div>

Я выбираю параметры программно, используя:

$(document).ready(function() {
  $('#veicoli').selectpicker('val', data);
  $('#veicoli').selectpicker('refresh');
}

, где data - массив:

["11", "33"]

Приведенный выше код правильно выбирает параметры при начальной загрузке, но сработало событие changed.bs.select, которое я определил следующим образом:

$(document).on('changed.bs.select', '#modale-dettagli #veicoli', function(e, clickedIndex, isSelected, previousValue) {
  console.log('e: ' + e);
  console.log('clickedIndex: ' + clickedIndex);
  console.log('isSelected: ' + isSelected);
  console.log('previousValue: ' + previousValue);
}

не работает должным образом, посколькуclickedIndex is undefined

Это результат указанного выше события:

e: [object Object]
clickedIndex: undefined
isSelected: undefined
previousValue: undefined

Обратите внимание, что при нажатии одинаковых опций (с помощью мыши) одно и то же событие работает правильно

РЕДАКТИРОВАТЬ: Просто чтобы вы поняли, проблема, с которой я столкнулся сейчас, заключалась в ошибке в более ранней версии Метод val () не запускает change.bs.select

РЕДАКТИРОВАТЬ 2: Я обнаружил, что могу получить индекс выбранной опции с помощью this.selectedIndex (вместо использования параметра функции clickedIndex) и с некоторым "кодом"трюк "работа может быть выполнена

1 Ответ

0 голосов
/ 27 марта 2019

clickedIndex преднамеренно возвращается только при возникновении события щелчка (при выборе опции вручную).Документация, вероятно, должна быть обновлена, чтобы отразить это, но это будет трудно реализовать должным образом при использовании метода val(), так как в случае множественного выбора, несколько значений могут быть изменены одновременно (поэтому будет трудно определитькакие элементы будут считаться "нажатыми").Однако, previousValue должен быть возвращен , и тот факт, что это не так, является ошибкой.Это будет исправлено в bootstrap-select v1.13.9, хотя (https://github.com/snapappointments/bootstrap-select/issues/2244).

...