Javascript 如何绑定到select2更改事件并获取所选值

Javascript 如何绑定到select2更改事件并获取所选值,javascript,jquery-select2,sonata-admin,Javascript,Jquery Select2,Sonata Admin,我有一个select元素,它由Select2通过SonataAdminBundle修饰 我正试着倾听变化事件。我的select标记的ID是“categorySelector” 这不起作用: var test = $('#categorySelector'); $(test).change(function() { var theSelection = $(test).select2("val"); //$('#selectedID').text(theID); cons

我有一个select元素,它由Select2通过SonataAdminBundle修饰

我正试着倾听变化事件。我的select标记的ID是“categorySelector”

这不起作用:

var test = $('#categorySelector');

$(test).change(function() {

    var theSelection = $(test).select2("val");
    //$('#selectedID').text(theID);
   console.log(theSelection);
});

我该怎么做呢?

我想这应该适合你

$('#categorySelector').on("change", function(e) {
    var theSelection = e.val();
    console.log(theSelection);
}); 

所有公共事件都使用jQuery事件系统进行中继,并在Select2所连接的元素上触发。您可以使用jQuery提供的.on方法附加到它们:

$('#categorySelector').on('select2:select', function (e) {
  // Do something
});
触发select2:select时,可以通过params.data访问选择中的数据

在param.data中,您收到的对象如下:

{selected: true, disabled: false, text: "India", id: "101", title: "", …} 
然后可以简单地应用文本或id属性

$('#categorySelector').on('select2:select', function (e) {
    var theSelection = e.params.data.id;
    console.log(theSelection );
});

在我的例子中,val不是一个函数,我必须做一个
var selectedValue=e.val