Самозагрузка-выборка нескольких триггеров при изменении значения программно - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть выбор начальной загрузки, который я хочу изменить значение программно.Что-то вроде:

<select class="form-control selectpicker" id="testpicker" data-lastselected="Ketchup">
 <option>Mustard</option>
 <option selected="">Ketchup</option>
 <option>Relish</option>
</select>

Чтобы изменить его, я использую следующую функцию:

$('#testpicker').selectpicker('val', value to change);

И я слушаю, как это меняется с:

$('select').on("change", function() {}

Внутри функции изменения у меня есть оператор if, спрашивающий пользователя, действительно ли он хочет изменить опцию и продолжить процесс:

 if (!confirm("Sure you want to change to " + $('#testpicker').val())) {
    $('#testpicker').selectpicker('val', 
    $('#testpicker').data('lastselected'));
 } else {
    $('#testpicker').data('lastselected', $('#testpicker').selectpicker('val'));
 }

Итак, когда ответ пользователя на подтверждение отменен, начальная загрузка-select входит в бесконечный цикл, всегда показывая диалоговое окно подтверждения, пока пользователи не примут его!

Вы можете проверить его здесь .

Решение, которое у меня естьиспользуется для обхода этого поведения - для изменения значения используйте:

$('#testpicker').val(value to change).selectpicker('refresh');
...