Как получить значение select2:отменить
как я могу получить значение невыбранной опции в Select2 используя select2:unselect
$('#mySelect').on("select2:unselect", function(e){
var unselected_value = $('#mySelect').val(); // using this shows 'null'
// or using below expression also shows 'null'
var unselected_value = $('#mySelect :selected').val();
alert(unselected_value);
}).trigger('change');
в приведенном выше коде предупреждение показывает "null"
мне нужно использовать select2:unselect
потому что событие 'change' будет иметь смысл :select
и :unselect
оба.
7 ответов
фактически, значение данных находится внутри объекта события. Было бы полезно, если вы имеете дело с несколькими значениями select2.
function(e){
console.log(e.params.data)
}
наконец, у меня есть решение, и это:
Значение параметра unselected доступно только до его снятия. Не select2:unselect
на select2:unselecting
теперь код будет такой:
$('#mySelect').on("select2:unselecting", function(e){
var unselected_value = $('#mySelect').val();
alert(unselected_value);
}).trigger('change');
Это старый вопрос, но, возможно, этот ответ поможет кому-то. Я использую Select2 v4.0.3 с несколькими значениями / тегами и требуется только идентификатор конкретного удаляемого. Я действительно не хотел использовать unselecting
событие, как указано в других ответах. В unselect
событие нет args
объект, поэтому вы можете получить идентификатор того, который вы пытаетесь удалить, как это...
jQuery('.mySelect2').on("select2:unselecting", function(e){
return true; // I don't use this unselecting event but here is how you could use it to get the ID of the one you are trying to remove.
console.log(e);
console.log(e.params);
console.log(e.params.args.data);
console.log(e.params.args.data.id);
//console.log(e.params.args.data.tag); data.tag is specific to my code.
});
jQuery('.mySelect2').on('select2:unselect', function (e) {
console.log(e);
console.log(e.params);
console.log(e.params.data);
console.log(e.params.data.id);
//console.log(e.params.data.tag); data.tag is specific to my code.
/*
Now you can do an ajax call or whatever you want for the specific
value/tag that you are trying to remove which is: e.params.data.id.
*/
невыбранный элемент проходит через e.парамы.данные. Мы можем получить доступ к его значению с помощью "id", и если вам нужен текст, вы можете использовать " данные.текст".
$("select").on("select2:unselect", function (e) {
var value= e.params.data.id;
alert(value);
});
получение определенного значения параметра, если вы используете несколько тегов:
var unselected_value = $('#mySelect option:selected').val();
alert(unselected_value);
Это мое решение для изменения цвета фона города на карте SVG в поисках названия конкретного города. Надеюсь, это может помочь вам
$(".js-example-diacritics").on("select2:unselect", function(evt) {
var element = evt.params.data.element;
townColor(element.text, unHighLightColor);
});
в метод townColor () я передаю текст (название города) элемента select2 невыбранным и константой с именем unHighLightColor, который содержит имя цвета.
на Select2 4.0.3 я нашел . Итак, чтобы найти id из unselecting item, измените свой код следующим образом:
$('select').on('select2:unselecting', function (e) {
var id = e.params.args.data.id; //your id
alert('Are You Sure ?');
e.preventDefault();
// Do something with your id
});