我使用的是最新版本的Select2(4.0),无法找到如何在进行选择时触发事件,并检索最后选择的值(当使用可以进行多项选择的选择框时)
在旧版本的Select2中,如果我没记错的话,选择时附加插件的选择的“onchange”事件会在选择时触发,但这不适用于该事件。
当选择框选项发生变化时,我设法触发了一个javascript函数,但还是无法找出最后选择的id。我是这样做的:
jQuery("#select2_holder").on("change", function(e) {
console.log(arguments);
});
我也尝试记录参数,但我也找不到所需的信息。
我已阅读官方网站上的文档,但我找不到任何关于回调函数的信息。
这里有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:2)
Select2提供select2:select
事件,只要选择了新值,就会触发该事件。对于单个选择,这相当于change
,其中包含一些额外的元数据。
您可以使用evt.data
获取所选数据对象,其中evt
是传递给事件处理程序的第一个参数。
jQuery("#select2_holder").on("select2:select", function (evt) {
console.log(evt.data);
});
您可以找到事件in the Select2 examples的实时示例。
在旧版本的Select2中,如果我没记错的话," onchange"在做出选择时,插件附加到的选项的事件被触发,这不会对该事件起作用。
这是正确的,在Select2 3.x中我们用来修改标准change
事件并在其上添加一些额外的属性。由于(不幸的是)这种情况从不一致,并且在人们想要手动触发change
时导致问题,我们不会修改Select2 4.0中的标准change
事件。
答案 1 :(得分:0)
上一个例子很好,但有一个错误:
需要使用select2:selecting
代替select2:select
所以我们有
jQuery("#select2_holder").on("select2:selecting", function (evt) {
console.log(evt);
});