使用json格式化Select2下拉结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用json格式化Select2下拉结果相关的知识,希望对你有一定的参考价值。

我正在使用select2下拉控件来显示设施列表,例如设施A,B,C ......等。以及它的位置细节。我正在寻找以下输出,

目前我可以显示“设施名称”,但想从我的json对象中显示City和State。如何格式化我的结果以将其显示为上面的html格式?到目前为止,这是我的代码。

<input type="hidden" id="ddlFacility" style="width:100%" />

$("#ddlFacility").select2({
        placeholder: "Select a Facility",
        ajax: {
            url: "my url",
            dataType: 'json',
            type: "GET",
            quietMillis: 50,
            data: function ( term ) { return { term: term }; },
            results: function (data) {
                return {
                    results: $.map(data, function (item) {
                        return { text: item.FacilityName, id: item.FacilityId }
                    })
                };
            }
        }
    });
答案

在你的select2选项中传递一个类似这样的函数,并根据你的需要设置类的样式

...
placeholder: "Select a Facility",
    formatResult: function(item)
    { 
         return '<div class="facility">' + item.text + '</div><span class="city">' + item.city + '</span></div>';
    },
 ...

除了id和text之外,您可能还需要.map函数来包含Facilityname和City值。

如果希望所选值看起来相同,请对formatSelection选项使用相同的函数

以上是关于使用json格式化Select2下拉结果的主要内容,如果未能解决你的问题,请参考以下文章

即使正确的 JSON 格式,Select2 也不显示 AJAX 结果

select2 optgroup ajax json格式

Select2 不工作,总是显示“未找到结果”

Select2 webforms在使用ajax“未找到结果”返回结果后未绑定

Select2 下拉列表如何通过 AJAX 加载结果

如何使用 Select2.js 对从 Ajax 调用返回的数据进行多选结果?