动态select2未触发更改事件

我有一个内部有几个选择的表单。 我正在将select2 jquery插件应用于这样的选择:

$("select.company_select, select.positions_select").select2(); 

select的工作正常,但是我有这个代码自动提交我的表单(我在表单标签上有autosubmit类)。

 var currentData; $('.autosubmit input, .autosubmit select, .autosubmit textarea').live('focus', function () { currentData = $(this).val(); }); $('.autosubmit input, .autosubmit select, .autosubmit textarea').live('change', function () { console.log('autosubmiting...'); var $this = $(this); if (!currentData || currentData != $this.val()) { $($this.get(0).form).ajaxSubmit(function (response, status, xhr, $form) { currentData = ""; }); } }); 

问题是,使用select2,更改或焦点事件根本不会触发。 如果我删除select2,那么事件会被完全解雇。

我究竟做错了什么?

Select2只有2个事件, openchangehttp://select2.github.io/select2/#events ),您只能向它们添加侦听器。 您可以使用open事件而不是focus元素。 请不要使用live()方法,因为它已被弃用。 使用on()代替。

 var currentData; $(".autosubmit select").on("open", function() { currentData = $(this).val(); }); $(".autosubmit input").on("focus", function() { currentData = $(this).val(); }); $(".autosubmit input, .autosubmit select").on("change", function() { var $this = $(this); console.log('autosubmitting'); if (!currentData || currentData != $this.val()) { $($this.get(0).form).ajaxSubmit(function (response, status, xhr, $form) { currentData = ""; }); } }); 

这是小提琴