![](/img/trans.png)
[英]Event Trigger Select2 when the select option is already selected (Multiple Select Option)
[英]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.