簡體   English   中英

在 Select2 事件中獲取選中的選項,當可以選擇多個選項時

[英]Get selected option in Select2 event, when multiple options can be selected

如何在收聽select2:select事件時保持剛剛選擇的<option> 請注意,這在使用單選時很簡單,因為當僅選擇一個選項時,該選項必須是剛剛選擇的選項。 我還希望能夠找到使用多選( <select multiple> )時剛剛選擇的選項。

select2:unselect事件中,未選中的<option>可通過e.params.data.element ,但在select2:select事件中並非如此。 我看不出<option>不可用的原因,因為它是在此時創建的。 但是,對於select2:selecting事件, <option>尚未創建,並且在觸發事件時顯然無法使用。

我已經使用以下內容來獲取 Select2 中選擇的當前值(適用於版本 4 及更高版本):

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

更新:多選值(有和沒有最后選擇)

// 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);
});
 $('#test').on('select2:select', function(e) {
  var data = e.params.data;
  console.log(data);
 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM