【问题标题】:Fire callback when selection was made with select2 4.0, and retrieve the value of last selection使用 select2 4.0 进行选择时触发回调,并检索上次选择的值
【发布时间】:2015-03-31 18:44:04
【问题描述】:

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

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

我设法在选择框选择更改时启动JavaScript函数,但尚未弄清最后一个所选ID。我是这样做的:

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

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

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

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

谢谢!

【问题讨论】:

    标签: jquery jquery-select2 jquery-select2-4


    【解决方案1】:

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

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

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

    您可以找到活动的现场示例in the Select2 examples


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

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

    【讨论】:

    • 感谢您的及时回复!
    【解决方案2】:

    上一个例子很好,但有 1 个错误: 需要使用select2:selecting 而不是select2:select

    所以我们有

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2013-04-15
      • 1970-01-01
      • 2015-05-19
      • 2013-05-30
      相关资源
      最近更新 更多