2015-03-31 51 views
2

我正在使用最新版本的Select2(4.0),並且無法找到如何在選擇時觸發事件,以及檢索最後選定的值(當使用可選擇多個選擇框時)。使用select2 4.0進行選擇時觸發回調,並檢索最後一個選擇的值

在舊版本的Select2中,如果我沒有記錯的話,當插入選擇時,插入附加到的select的「onchange」事件觸發,這不適用於該部分。

當設置選擇框發生變化時,我設法激活了一個javascript函數,但是卻找不到最後選擇的id。以下是我做的:

jQuery("#select2_holder").on("change", function(e) { 
     console.log(arguments); 
}); 

我也嘗試登錄的論點,但我不能在那裏找到所需的信息,無論是。

我已經通讀了官方網站上的文檔,但是我找不到任何有關它的回調函數。

這裏有人能指點我正確的方向嗎?

謝謝!

回答

2

Select2提供了select2:select事件,該事件在任何時候選擇新值時觸發。對於單個選擇,這相當於change包含一些額外的元數據。

您可以使用evt.data獲取選定的數據對象,其中evt是傳遞給事件處理程序的第一個參數。

jQuery("#select2_holder").on("select2:select", function (evt) { 
    console.log(evt.data); 
}); 

您可以找到活動in the Select2 examples的現場示例。


在舊版本中選擇二,如果我沒記錯的話,哪個插件附着在被做了選擇發射選擇的「的onchange」事件,這並不在momment工作。

這是正確的,在Select2 3.x中,我們用來修改標準change事件並在其上放置了一些額外的屬性。由於這是(不幸的)並不一致,當人們想要手動觸發change時會引發問題,我們不會修改Select2 4.0中的標準change事件。

+0

感謝您的及時答覆! – 2015-04-01 13:13:16

0

上一個例子是好的,但1個錯誤: 需要使用select2:selecting代替select2:select

因此,我們必須

jQuery("#select2_holder").on("select2:selecting", function (evt) { 
    console.log(evt); 
});