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

时间:2014-02-20 11:24:35

标签: 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);
   console.log(theSelection);
});

我该怎么做?

2 个答案:

答案 0 :(得分:4)

我认为这对你有用......

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

答案 1 :(得分:1)

所有公共事件都使用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: "", …} 

然后您可以简单地应用text或id属性。

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