使用 ajax 时,Select2(4.00) 在 onSelect 事件中返回 undefined

Posted

技术标签:

【中文标题】使用 ajax 时,Select2(4.00) 在 onSelect 事件中返回 undefined【英文标题】:Select2(4.00) return undefined in onSelect event when useing ajax 【发布时间】:2016-01-17 10:18:52 【问题描述】:

我正在使用 Select2 (ver 4.00) 并使用 ajax 方法加载远程数据。

我需要检索所选选项的标题,但在 select2:select 事件数据未定义

我的代码:

 $(".js-data-action-terms").select2(
    ajax: 
        url: ajaxurl + "?action=terms",
        dataType: 'json',
        data: function (params) 
            return 
                q: params.term, // search term
                page: params.page
            ;
        ,
        processResults: function (data, page) 
            return 
                results: data.items
            ;
        ,
        cache: false
    ,
    escapeMarkup: function (markup) 
        return markup;
    ,
    minimumInputLength: 1,
    templateResult: formatRepo,
    templateSelection: formatRepoSelection
);

$('.js-data-action-terms').on("select2:select", function(e) 
    console.log(e);
);

结果日志:

【问题讨论】:

【参考方案1】:

在 Select2 4.0.0 中,所选对象已从 evt.data 属性移动到 evt.params.data。现在 Select2 中事件的所有额外数据都放在evt.params 中以保持一致性。

【讨论】:

谢谢!这就是我要找的!

以上是关于使用 ajax 时,Select2(4.00) 在 onSelect 事件中返回 undefined的主要内容,如果未能解决你的问题,请参考以下文章

select2 使用 ajax 时删除默认选项

在select2中使用ajax时无法获取自定义属性值

select2:使用ajax获取json时“文本未定义”

在 select2 插件中调用 ajax 时引入延迟

使用AJAX数据源时可以在Select2中设置查询字符串参数吗?

Select2 ajax:在编辑模式下预选数据