Javascript 我无法捕获Select2事件-我怀疑我使用了错误的jquery选择器

Javascript 我无法捕获Select2事件-我怀疑我使用了错误的jquery选择器,javascript,jquery,jquery-select2,jquery-select2-4,Javascript,Jquery,Jquery Select2,Jquery Select2 4,这是我编写的javascript—它提醒我找到了四个.select2实例,找到了四个select元素,并将消息记录到控制台,但我从select2框中选择的内容的任何更改实际上都不会记录或提醒我有关更改的信息。我怀疑我在查找要附加这些更改侦听器的对象时使用了错误的选择器,但在文档中找不到有关如何查找select2元素的完整示例 $(document).on('change', '.select2-input', function(e) { console.log('Detected a d

这是我编写的javascript—它提醒我找到了四个.select2实例,找到了四个select元素,并将消息记录到控制台,但我从select2框中选择的内容的任何更改实际上都不会记录或提醒我有关更改的信息。我怀疑我在查找要附加这些更改侦听器的对象时使用了错误的选择器,但在文档中找不到有关如何查找select2元素的完整示例

$(document).on('change', '.select2-input', function(e) {
    console.log('Detected a different change!');
    alert('The other method of detecting changes worked!');
});
$('.select2').on('change', function(e) {
    console.log('Detected a change!');
    alert('Something was changed!');
});
console.log('Loaded!');
alert('Loaded v2 - found ' + $('.select2').length + ' instances of select2 and ' + $('select').length + ' instances of select.');
如何找到我的select2元素

这与将select转换为select2时使用的选择器相同,例如:

$('.my-select-dropdown').select2();
我不创建select2实例

如果在别处生成select2,您可以使用以下方法找到select2应用于的原始select:

$(".select2-hidden-accessible")
信息的关键在于,事件是针对原始的select下拉列表而不是任何select2控件引发的,例如:

//这种情况发生在你无法控制的其他地方 $'.select2'.select2; //查找原始转换的下拉列表 $'.select2隐藏可访问'。在'select2:select'上,函数e{ var数据=e.params.data; console.logdata.id,data.text,$。选择2.val; }; .select2{宽度:150px} 阿拉巴马州 阿拉斯加州 亚利桑那州
不需要查找select2内部控件。select2输入-使用提供的select2事件:@freedomn-m-该页面上的示例不完整,但它们显示了通过id mySelect2查找select2实例。我没有创建select2实例,也没有它们的ID,除非我在dom中看到了错误的东西,否则我认为它们根本没有ID。。。。我不知道-我通常如何只听我网站上所有select2实例中的所有事件,而不管它们是由哪个库或框架生成的?我正在使用jquery,所以使用它的答案很好。不是最清晰的示例。mySelect2将是原始的id。下面是一个使用事件的示例:在这把小提琴中,我使用了一个id,在SO wiki标记中,他们使用了一个类,但是当您转换select初始值$select.select2I不创建select2实例-select2实例是如何创建的?@freedomn-m-在我的服务器上,我使用的是Django,dal,和dal_select2——它们一起将Django表单的字段呈现为select2元素,据我所知,我几乎无法控制该元素。我想在用户更改select2框中的选择时显示/隐藏字段,我认为捕捉这些事件可能是最好的方法。我不认为所有这些复杂性都是相关的。我会研究你给出的答案,看看我能用它做些什么-我有dal_select2的来源,所以我可以看到它调用$..select2。非常感谢!我的误解是,我以为我在寻找一些新的select2元素上的事件,而这些事件只是在DOM中躲避我——我没有意识到我可以从普通的select元素中获得更改事件,就像你说的那样。我切换到使用$'。选择2隐藏可访问。在“更改”上。。。现在,它正在按预期工作。