Запустить действие после выбора 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
});
Ответы
Ответ 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
});