目的是将数据从Controller端导入到Select2元素(启用多选功能)。我希望安装程序看起来像Stack Overflow中的标签框,在其中您可以开始输入标签,选择它,然后再选择另一个。

我一直使用Select2文档作为参考,但是该请求没有发送到Controller。

Select2 Documentation

我的代码:

$(".jsData").select2({
    ajax: {
        contentType: 'application/json',
        url: '<%=Url.Action("GetDataMethod","RelevantController")%>',
        type: 'POST',
        dataType: 'json',
        data: function (term) {
            return {
                sSearchTerm: term
            };
        },
        results: function (data) {
            var datajs = $.map(data, function (obj) {
                obj.text = obj.someterm; // desired field,
                obj.id = obj.someId;
                return obj;
            });
            return {
                results: JSON.parse("[" + datajs.split(",") + "]")
            };
        }
    },
    multiple: true
});


我对将数据动态添加到Select 2还是比较陌生,因此,我们将不胜感激。谢谢!

最佳答案

更新:找到了解决方案,并在此发布给其他人。

HTML

 <input class="jsData" style="width: 100%"  id="select2Data" ></input>


Javascript

              $(".jsData").select2({
                        ajax: {
                            minimumInputLength: 4,
                            contentType: 'application/json',
                            url: '<%=Url.Action("GetData","Controller")%>',
                            type: 'POST',
                            dataType: 'json',
                            data: function (term) {
                                return {
                                    sSearchTerm: term
                                };
                            },
                            results: function (data) {
                                return {
                                    results: $.map(JSON.parse(data), function (item) {
                                        return {
                                            text: item.term,
                                            slug: item.slug,
                                            id: item.Id
                                        }
                                    })
                                };
                            }
                        },
                        multiple: true
                    });

关于javascript - 使用AJAX将基于JSON的远程数据导入Select2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44299662/

10-16 04:45