如何使用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
两者。
实际上,数据值在事件Object内。如果您正在处理select2多个值,那将非常有用。
function(e){
console.log(e.params.data)
}
这是一个较老的问题,但也许这个答案会对某人有所帮助。我正在使用带有多个值/标签的Select2 v4.0.3,并且只需删除特定ID的ID。我真的不想使用其他答案中提到的unselecting
事件。在unselect
事件中没有args
对象,所以你可以得到你想要删除的那个ID ...
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.
*/
最后,我得到了解决方案,即:未选中的选项的值仅在取消选中之前可用。现在不是在select2:unselect
而是在select2:unselecting
,代码将是:
$('#mySelect').on("select2:unselecting", function(e){
var unselected_value = $('#mySelect').val();
alert(unselected_value);
}).trigger('change');
未选中的元素通过e.params.data。我们可以使用'id'访问它的值,如果你需要文本,你可以使用'data.text'。
$("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我发现e.params
被改变了。因此,要从取消选择的项目中查找ID,请更改以下代码:
$('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
});