javascript - 在选择选项中显示值而不是文本
问题描述
我有国家代码下拉列表,在选择选项文本中有国家名称和 ISD 代码,但我只想在选择后显示 ISD 代码。
<select class="form-control-input" name="country_isd_code" id="country_isd_code">
<option value="">Country Code</option>
<option value="+244">Angola (+244)</option>
<option value="+1">Anguilla (+1)</option>
</select>
我已经搜索了其他一些论坛,但我无法获得如何做到这一点。比如如果我们选择安圭拉,那么它应该在那里显示+1,如果选择安哥拉,它应该显示+244
解决方案
只有一个<select>
元素的解决方案。
这个怎么运作:
- 初始化
<option>
将用于显示所选选项值的隐藏项。 - 选择选项时:
- 如果此值不为空,则影响隐藏选项的
value
属性和文本内容value
,即刚刚选择的选项的属性。然后显示隐藏选项。 - 清空
value
该选项的文本内容,然后隐藏它,如果选择的值为空(Country code
此处的选项)。
- 如果此值不为空,则影响隐藏选项的
document.addEventListener('DOMContentLoaded', () => {
const select = document.querySelector('select');
select.addEventListener('change', () => {
const value = select.value,
showValueOption = select.querySelector('.show-value');
if (value === '') {
showValueOption.style.display = 'none';
showValueOption.value = '';
return;
}
showValueOption.style.display = '';
showValueOption.innerText = value;
showValueOption.value = value;
select.selectedIndex = 0;
});
});
<select class="form-control-input" name="country_isd_code" id="country_isd_code">
<option class="show-value" value="" style="display:none;"></option>
<option value="" selected>Country Code</option>
<option value="+244">Angola (+244)</option>
<option value="+1">Anguilla (+1)</option>
</select>
推荐阅读
- reactjs - 如何使用选项卡内容中的按钮在 react-bootstrap 选项卡之间切换?
- python - 交叉验证的错误数据(不起作用)
- javascript - Javascript刽子手不循环
- javascript - 在 Chrome 中使用 React 添加新的 DOM 项目不会保持预期的滚动位置
- excel - 无法设置行属性值无效的属性值错误 - VBA
- terraform - 使用后端在 S3 中存储 Terraform 状态
- java - Maven插件无法解析
- java - 生成不在列表中的字母数字数字的有效方法
- c++ - 如何正确破坏包含指针类的结构的 QVector?
- java - 有没有办法在 LineGraph JavaFX 中以 0 而不是 X、Y 轴的下限开始刻度线?