当可以选择多个选项时,在Select2事件中获取选定选项

Mag*_*eit 3 html-select javascript-events jquery-select2 jquery-select2-4

如何<option>在听取select2:select事件时选择刚刚选择的内容?请注意,使用单选时很简单,因为只选择一个选项时,必须是刚刚选择的选项.我还希望能够找到在使用multiple-select(<select multiple>)时刚刚选择的选项.

在这种情况select2:unselect下,未经选择<option>的可以通过e.params.data.element,但事实并非如此select2:select.我没有看到为什么<option>不应该可用的原因,因为它是在这个时候创建​​的.select2:selecting但是,对于该事件,<option>尚未创建,并且在事件触发时显然无法使用.

Den*_*nis 20

我已经使用以下内容来获取Select2中的当前选项(它适用于版本4及更高版本):

// single value
var test = $('#test');
test.on("select2:select", function(event) {
  var value = $(event.currentTarget).find("option:selected").val();
  console.log(value);
});
Run Code Online (Sandbox Code Playgroud)

更新:多选的值(有和没有上次选择)

// multi values, with last selected
var old_values = [];
var test = $("#test");
test.on("select2:select", function(event) {
  var values = [];
  // copy all option values from selected
  $(event.currentTarget).find("option:selected").each(function(i, selected){ 
    values[i] = $(selected).text();
  });
  // doing a diff of old_values gives the new values selected
  var last = $(values).not(old_values).get();
  // update old_values for future use
  old_values = values;
  // output values (all current values selected)
  console.log("selected values: ", values);
  // output last added value
  console.log("last added: ", last);
});
Run Code Online (Sandbox Code Playgroud)