仅在引导程序表单助手国家/地区选取器中显示国家/地区子集文本

Only show country subset text in bootstrap formhelpers country picker

本文关键字:地区 国家 显示 子集 文本 选取 引导程序 表单      更新时间:2023-09-26

我正在使用Bootstrap FormHelpers国家选择器,我有以下初始化代码:

<div class="bfh-selectbox bfh-languages pull-right" data-language="es_ES" data-available="gl_ES,ca_ES,eu_ES,es_ES" data-flags="false" data-blank="false"></div>

此代码生成以下输出:

<div class="bfh-selectbox bfh-languages pull-right" data-language="es_es" data-available="gl_ES,ca_ES,eu_ES,es_ES" data-flags="false" data-blank="false">
<input type="hidden" name="" value="es_es">
<a class="bfh-selectbox-toggle form-control" role="button" data-toggle="bfh-selectbox" href="#">
<span class="bfh-selectbox-option">Galego (Spain)</span>
<span class="caret selectbox-caret"></span></a>
<div class="bfh-selectbox-options">
    <div role="listbox">
        <ul role="option">
            <li>
                <a tabindex="-1" href="#" data-option="gl_ES">Galego (Spain)</a>
            </li>
            <li><a tabindex="-1" href="#" data-option="ca_ES">Català (Spain)</a></li>
            <li><a tabindex="-1" href="#" data-option="eu_ES">Euskara (Spain)</a></li>
            <li><a tabindex="-1" href="#" data-option="es_ES">Español (Spain)</a></li>
        </ul>
    </div>
</div>

这很好,但我只会得到子集名称,如"Galego"、"Catalá"、"Euskara"和"Español",但避免附加"(西班牙)"(国家名称)。因此,仅引导程序选择将显示子集区域设置国家/地区名称。

这很容易实现吗?我认为唯一可以工作并且非常丑陋的是访问 DOM 并在加载页面后在每个 li role="option" 中删除"(西班牙)"文本,但我正在寻找一些优雅的方法,也许初始化引导程序选项。

如果你用: data-language="es" 而不是 es_ES 声明它,这很简单

<div class="bfh-selectbox bfh-languages pull-right" data-language="es" data-available="gl_ES,ca_ES,eu_ES,es_ES" data-flags="false" data-blank="false"></div>

这是语言选取器的文档

这是我使用 javascript 解决的唯一棘手方法,因为我认为引导组件不允许本机实现此功能。在这里写解决方案,如果将来对更多人有帮助:

<script>
        $( document ).ready(function() 
        {
            $('.bfh-selectbox-options li a').each(function(key, value) {
                //console.log($(this).text().replace(' (Spain)',''))
                $(this).text($(this).text().replace(' (Spain)',''))
            });
            $('.bfh-selectbox-option').text($('.bfh-selectbox-option').text().replace(' (Spain)',''))
        });
</script>