国家/地区的 Select2 下拉菜单,带有标志

Posted

技术标签:

【中文标题】国家/地区的 Select2 下拉菜单,带有标志【英文标题】:Select2 drop-down for countries, with flags 【发布时间】:2013-08-08 14:13:15 【问题描述】:

有人有一个易于使用的国家下拉列表示例,带有国家标志,Select2?我将根据this 的建议实施一个,但我宁愿避免重新发明***。

【问题讨论】:

【参考方案1】:

我正在解决类似的问题,这是我的解决方法。

(function($) 
    $(function() 
        var isoCountries = [
             id: 'AF', text: 'Afghanistan',
            ...
        ];
        //Assuming you have a select element with name country
        // e.g. <select name="name"></select>

        $("[name='country']").select2(
            placeholder: "Select a country",
            data: isoCountries
        );
    );
)(jQuery);

我也为此做了一个gist,下面是演示。

Demo 1 Demo 2 with flags 基于官方DOC 的select2

【讨论】:

Select2; Examples - Templating 会在您在非下拉视图中选择一个国家作为选定选项时显示标志。我已经复制了他们所做的,类似于您的Demo 2 with flags,但是这不会在选择选项时显示标志。请问如何复制? 很棒的解决方案 - 适用于我的 Chrome 页面操作扩展 @TimMarshall 如果你还没有修复它,我可以看看你尝试过的代码吗? @GregTrevelick,太好了。我很高兴。完成延期后告诉我。我想看看。 @Starx,感谢您的解决方案,它对我帮助很大。我知道这个答案有点老了,但我想回答@Tim Marshall,因为我遇到了同样的问题,而且解决方案可以帮助其他人。首先,您必须确保添加 flag-icon CSS 库(&lt;link href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.3.0/css/flag-icon.min.css" rel="stylesheet" /&gt; in 2019)。【参考方案2】:

我的做法:

<div class="form-group">
    <label class="control-label">Destination</label>
    <input type="text" name="cdCountry" class="form-control" required />
</div>

<script>
    $("[name='cdCountry']").select2(
        placeholder: "Select a country",
        formatResult: function (country) 
            return $(
              "<span><i class=\"flag flag-" + country.id.toLowerCase() + "\"></i> " + country.text + "</span>"
            );;
        ,
        data: yourDataSource
    );
</script>

并使用 css 库(css 和精灵) https://www.flag-sprites.com/

Official DOC

【讨论】:

【参考方案3】:

查看以下链接。

http://www.marghoobsuleman.com/countries-dropdown-flags http://vincentlamanna.com/BootstrapFormHelpers/country.html

【讨论】:

第二个链接失效 =[ 第一个链接是一个很好的库,但是它有很多错误并且没有响应 @VivienPipo 是的,它不是响应式的,但它非常有帮助,并且对于响应性,您需要让它们响应,例如更改 .dd 类的宽度【参考方案4】:
<head>
    <link href="select2.css" rel="stylesheet"/>
    <script src="select2.js"></script>
    <script>
        $(document).ready(function()  $("#e1").select2(); );
    </script>
</head>
<body>
    <select id="e1">
        <option value="1">Albania<img src="Albania.jpg"></option>
        ...
        <option value="2">Germany<img src="Germany.jpg"></option>
    </select>
</body>

【讨论】:

谢谢,但这太原始了。我仍然需要将图像(jpgs,没办法!),国家列表等放在一起。我正在寻找一些 javascript 库,我可以在其中简单地传递一系列国家(例如,通过 ISO 代码),然后得到一个完全初始化的Select2 下拉菜单,带有标志。

以上是关于国家/地区的 Select2 下拉菜单,带有标志的主要内容,如果未能解决你的问题,请参考以下文章

在下拉菜单中分组地图国家

带有标志的 Html 国家/地区列表 [关闭]

HTML HTML:下拉菜单的国家/地区列表

如何使用 Angular js 制作搜索类型下拉列表?

如何使用 Select2 和 Ajax 保留相关下拉值

带有管道联系表 7 的可选收件人获取国家/地区名称问题