几个小时后,我终于加载并正确显示了json文件,包括使用Select2 4.0的旗帜图标,这看起来是多么简单的代码看起来是可笑的。
但现在,由于某些原因,搜索功能不起作用。我无法搜索任何选项。
希望它是快速和容易的,我可以猛击自己的头部,因为我没有更早地发现它。
HTML:
<select id="country_select" class="form-control"></select>
JS:
<script>
function formatCountry (country) {
if (!country.id) { return country.text; }
var $country = $(
'<span><img src="/assets/img/flags/' + country.code.toLowerCase() + '.png" class="flag" /> ' + country.text + '</span>'
);
return $country;
};
$('#country_select').select2({
templateResult: formatCountry,
templateSelection: formatCountry,
ajax: {
url: '/assets/json/countries.json',
dataType: 'json',
data: function (params) {
return {
q: params.term,
page: params.page
};
},
processResults: function (data, page) {
return {
results: $.map(data, function(country) {
return { id: country.id, code: country.code, text: country.name };
})
};
}
}
});
</script>
JSON:
{
"id":53,
"code":"CW",
"name":"Curaçao",
"iso_alpha_3":"CUW",
"iso_numeric":531
},
{
"id":54,
"code":"CX",
"name":"Christmasøya",
"iso_alpha_3":"CXR",
"iso_numeric":162
},
{
"id":55,
"code":"CY",
"name":"Kypros",
"iso_alpha_3":"CYP",
"iso_numeric":196
},
发布于 2015-06-25 08:50:50
Select2期望您的结果将在服务器端进行过滤,因此在使用AJAX时,它自己不会进行任何匹配。
鉴于您的JSON是静态的,我建议只使用$.ajax
预加载它,然后使用data
选项而不是ajax
将其加载到Select2中。
https://stackoverflow.com/questions/31038894
复制相似问题