2

我正在使用最新版本的 Select2 (4.0),并且无法了解如何在进行选择时触发事件,并检索最后选择的值(使用可以进行多项选择的选择框时)。

在旧版本的 Select2 中,如果我没记错的话,插件附加到的 select 的“onchange”事件在进行选择时触发,目前这不起作用。

I've managed to fire a javascript function when the select boxes selection changes, but can't figure out the last selected id yet. 我是这样做的:

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

我也尝试过记录参数,但我也找不到所需的信息。

我已经阅读了官方网站上的文档,但是我在其中找不到任何有关回调函数的信息。

这里有人可以为我指明正确的方向吗?

谢谢!

4

2 回答 2

2

Select2 提供在select2:select选择新值时触发的事件。对于单个选择,这相当于change包含一些额外的元数据。

您可以使用传递给事件处理程序的第一个参数evt.datawhere来获取选定的数据对象。evt

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

您可以在 Select2 示例中找到事件的实时示例


在旧版本的 Select2 中,如果我没记错的话,插件附加到的 select 的“onchange”事件在进行选择时触发,目前这不起作用。

这是正确的,在 Select2 3.x 中我们曾经修改标准change事件并在其上添加一些额外的属性。由于这(不幸地)从来没有保持一致,并且当人们想要change手动触发时会导致问题,我们不会修改changeSelect2 4.0 中的标准事件。

于 2015-03-31T22:15:29.443 回答
0

Prev example is good, but 1 mistake : need use select2:selecting instead of select2:select

So we have

jQuery("#select2_holder").on("select2:selecting", function (evt) {
  console.log(evt);
});
于 2016-07-06T05:55:52.523 回答