我正在使用 Select2 下拉菜单,我需要根据下拉选项执行一些功能。
我尝试过以下代码,但它对我没用。
$eventSelect.on("select2:select", function (e) { log("select2:select", e); });
$eventSelect.on("change", function (e) { log("change"); });
任何人都可以告诉我如何才能完成这项工作?
答案 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()输出到控制台。