Запустить действие после выбора select2 - программирование
Подтвердить что ты не робот

Запустить действие после выбора select2

Я использую select2 library для моего поиска.
есть ли способ вызвать действие после выбора результата поиска? например открыть всплывающее окно или простое предупреждение js.

$("#e6").select2({
    placeholder: "Enter an item id please",
    minimumInputLength: 1,
    ajax: { // instead of writing the function to execute the request we use Select2 convenient helper
        url: "index.php?r=sia/searchresults",
        dataType: 'jsonp',
        quietMillis: 3000,
        data: function (term, page) {
        return {
            q: term, // search term
            page_limit: 10,
            id: 10
            };
        },
        results: function (data, page) { // parse the results into the format expected by Select2.
            // since we are using custom formatting functions we do not need to alter remote JSON data
            return {results: data};
        },
    },

    formatResult: movieFormatResult, // omitted for brevity, see the source of this page
    formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page
    dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
    escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
});
4b9b3361

Ответ 1

Смотрите раздел раздел событий документации

В зависимости от версии один из нижеприведенных фрагментов должен предоставить вам нужное вам событие, иначе просто замените "select2-selection" на "change".

Версия 4.0 +

События теперь находятся в формате: select2:selecting (вместо select2-selecting)

Благодаря snakey для уведомления о том, что это изменилось с 4.0

$('#yourselect').on("select2:selecting", function(e) { 
   // what you would like to happen
});

Версия до 4.0

$('#yourselect').on("select2-selecting", function(e) { 
   // what you would like to happen
});

Чтобы уточнить, документация для select2-selecting гласит:

Select2-выбор Вызывается, когда выбор выбирается в выпадающего списка, но до того, как будут сделаны какие-либо изменения в выборе. Это событие используется, чтобы позволить пользователю отклонить выбор путем вызова event.preventDefault()

тогда как изменение имеет:

изменить Срабатывается при изменении выбора.

Итак, change может быть более подходящим для ваших нужд, в зависимости от того, хотите ли вы завершить выбор, а затем сделать свое событие или потенциально заблокировать изменение.

Ответ 2

Были внесены некоторые изменения в имена событий select2 (я думаю, на версии 4 и более поздних), поэтому '-' будет изменен на этот ':'.
См. Следующие примеры:

$('#select').on("select2:select", function(e) { 
    //Do stuff
});

Вы можете проверить все события на сайте "select2": select2 События

Ответ 3

Это работает для меня:

$('#yourselect').on("change", function(e) { 
   // what you would like to happen
});