Select2下拉更改事件不起作用

时间:2017-06-24 10:17:48

标签: javascript jquery jquery-select2 dropdown

我正在使用 Select2 下拉菜单,我需要根据下拉选项执行一些功能。

我尝试过以下代码,但它对我没用。

$eventSelect.on("select2:select", function (e) { log("select2:select", e); });

$eventSelect.on("change", function (e) { log("change"); });

任何人都可以告诉我如何才能完成这项工作?

4 个答案:

答案 0 :(得分:6)

我正在使用select2版本 3.3.2 ,以下代码正在为我工​​作

$("#id").on("change", function () { debugger; });

答案 1 :(得分:1)

您可以在知道网页已完全加载后尝试声明事件,在我的情况下,这就是问题所在:



$(document).ready(function(){
    $('#yourselect').on("select2:select", function(e) { 
        console.log($(this).val());
    });
});




答案 2 :(得分:0)

试试此代码

$eventSelect.select2().on("change", function(e) {
          // mostly used event, fired to the original element when the value changes
          log("change val=" + e.val);
        })

答案 3 :(得分:0)

我可以看到你从select2文档中获取了代码:

https://select2.github.io/examples.html#programmatic-control

您是否注意到他们在下面定义了一个函数,该函数使用了名为log()。

这是功能代码,你也包含了吗?

function log (name, evt) {
  if (!evt) {
      var args = "{}";
  } else {
      var args = JSON.stringify(evt.params, function (key, value) {
      if (value && value.nodeName) return "[DOM node]";
      if (value instanceof $.Event) return "[$.Event]";
      return value;
      });
  }
  var $e = $("<li>" + name + " -> " + args + "</li>");
  $eventLog.append($e);
  $e.animate({ opacity: 1 }, 10000, 'linear', function () {
      $e.animate({ opacity: 0 }, 2000, 'linear', function () {
          $e.remove();
      });
    });
}

或者,您可以使用console.log()输出到控制台。