仅在 bootstrap formhelpers 国家选择器中显示国家子集文本
Only show country subset text in bootstrap formhelpers country picker
我正在使用 Bootstrap FormHelpers country picker 并且我有以下初始化代码:
<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" 这样的子集名称,但要避免附加“(西班牙)”(国名)。所以 bootstrap select 只会显示子集区域设置国家/地区名称。
这个实现起来容易吗?我认为唯一可行且非常难看的是访问 DOM 并在加载页面后在每个 li role="option" 中删除“(西班牙)”文本,但我是寻找一些优雅的方式可能初始化 bootstrap 选项。
如果你声明它很简单: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 发现的唯一棘手的方法,因为我认为 bootstrap 组件不允许本机实现此功能。如果将来对更多人有帮助,请在这里写下解决方案:
<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>
我正在使用 Bootstrap FormHelpers country picker 并且我有以下初始化代码:
<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" 这样的子集名称,但要避免附加“(西班牙)”(国名)。所以 bootstrap select 只会显示子集区域设置国家/地区名称。
这个实现起来容易吗?我认为唯一可行且非常难看的是访问 DOM 并在加载页面后在每个 li role="option" 中删除“(西班牙)”文本,但我是寻找一些优雅的方式可能初始化 bootstrap 选项。
如果你声明它很简单: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 发现的唯一棘手的方法,因为我认为 bootstrap 组件不允许本机实现此功能。如果将来对更多人有帮助,请在这里写下解决方案:
<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>