动态select2不触发更改事件

2021/01/19 07:31 · jquery ·  · 0评论

我有一个表格,里面有几个选择。我正在将select2 jquery插件应用于这些选择,如下所示:

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

选择的工作正常,但我有这段代码可以自动提交表单(我在form标记上有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个事件,open并且changehttp://select2.github.io/select2/#events),您只能向其添加侦听器。您可以使用open事件代替focusfor<select>元素。并且请不要使用live()method,因为它已过时。使用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 = "";
        });
    }
});

这是小提琴

本文地址:http://jquery.askforanswer.com/dongtaiselect2buchufagenggaishijian.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!