You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一页面使用两个Bootstrap国家选择器均无法填充的问题求助

解决bfh-countries多选择器无法填充选项的问题

我之前也踩过bfh-countries插件的这个坑!当添加第二个不同ID的国家选择器后两个都失效,大概率是因为插件的自动初始化逻辑只处理了第一个匹配元素,或者多个元素之间的初始化流程发生了冲突。下面是我亲测有效的解决方法:

原因分析

bfh-countries这类基于jQuery的表单插件,默认会在页面加载时自动初始化第一个匹配.bfh-countries类的元素,但当存在多个同类别元素时,自动初始化的逻辑可能会遗漏后续元素,或者多个实例的初始化流程互相干扰。

解决方案:手动初始化每个国家选择器

放弃插件的自动初始化机制,改为手动调用初始化方法,确保每个选择器都能被独立正确处理:

步骤1:保留HTML结构(无需大改)

保持你的两个选择器代码,确保每个都有唯一ID和正确的类名:

<label for="CLInput">Country 1</label>
<select class="form-control bfh-countries" id="CLInput"></select>

<label for="CLInput2">Country 2</label>
<select class="form-control bfh-countries" id="CLInput2"></select>

注:可以去掉data-country属性,避免自动初始化和手动初始化冲突,后续在JS中配置默认国家即可

步骤2:添加手动初始化的JS代码

确保在DOM完全加载后,分别初始化每个选择器(bfh系列插件大多依赖jQuery,所以用jQuery示例更通用):

$(document).ready(function() {
  // 初始化第一个国家选择器,默认选中荷兰(NL)
  $('#CLInput').bfhcountries({
    country: 'NL'
  });
  
  // 初始化第二个国家选择器,默认选中美国(US)
  $('#CLInput2').bfhcountries({
    country: 'US'
  });
});

额外注意事项

  • 确认引入顺序:先加载jQuery,再加载bfh-countries的JS和CSS文件,避免依赖缺失报错。
  • 如果浏览器控制台出现报错,优先检查是否存在重复初始化、资源加载失败的问题。
  • 若不需要默认选中国家,可去掉初始化配置里的country参数。

内容的提问来源于stack exchange,提问作者hacking_mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:00:10