javascript - 根据客户端的时区 (JavaScript) 在下拉列表中选择值
问题描述
我有一个下拉列表,其中包含许多时区作为选项:
<select data-drupal-selector="edit-field-user-timezone" id="edit-field-user-timezone" name="field_user_timezone">
<option value="_none" selected="selected"></option>
<optgroup label="Africa">
<option value="Africa/Asmara">Asmara</option>
<option value="Africa/Bamako">Bamako</option>
<option value="Africa/Bangui">Bangui</option>
<option value="Africa/Banjul">Banjul</option>
我正在尝试通过 JavaScript 根据客户端的时区自动选择一个值:
<script>document.getElementById("edit-field-user-timezone").selectedIndex = Intl.DateTimeFormat().resolvedOptions().timeZone</script>
但这并没有做任何事情。我究竟做错了什么?
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)
确实以与下拉列表相同的格式输出我的正确时区。
谢谢
解决方案
尝试这个:
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
const option = Object.values(document.getElementById("edit-field-user-timezone").options)
option.map(element => {
element.value == timezone ? element.selected = true : false
});
<select data-drupal-selector="edit-field-user-timezone" id="edit-field-user-timezone" name="field_user_timezone">
<option value="_none" selected="selected"></option>
<optgroup label="Africa">
<option value="Africa/Asmara">Asmara</option>
<option value="Africa/Bamako">Bamako</option>
<option value="Africa/Bangui">Bangui</option>
<option value="Africa/Banjul">Banjul</option>
</optgroup>
</select>
推荐阅读
- flutter - Visual Studio Code 上的垂直缩进线是否有减少选项?
- java - 更改 javaFX 中的特定行颜色
- steam - 使用 SteamWebApi(CSGO 库存)时出现 429 错误
- spring-cloud-dataflow - Spring Cloud Data Flow Grafana(Prometheus)不显示流数据
- apache-kafka - max.poll.records 与 fetch.min.bytes
- python - Pandas:逐行比较数据框中的所有值
- php - php脚本加载但没有到达文件末尾
- c - strcpm() 它不给我平等
- vue.js - Vuejs:如何重置 Vue 组件内的输入框
- algorithm - max floq 和 min cut 中的多源 ans sink