【发布时间】:2023-03-24 13:18:01
【问题描述】:
我有两个经典的连锁国家和城市下拉列表。它们填充了 JSON,但我遇到了 2 个问题。第一个是:如何将默认的选择选项分别设置为“选择国家”和“选择城市”而不会出错。
第二个是:在下拉列表填充 JSON 之后,如何预先选择某个选项?
附:如果有人有纯 JavaScript 的解决方案,我也会很高兴。
$(document).ready(function() {
let countriesCitiesURL = "https://api.npoint.io/0114d901f1e3dbd47abe";
$.getJSON(countriesCitiesURL, (selectData) => {
function updateSelects(event) {
let cities = selectData[this.value].map((key, val) => {
return $("<option />").text(key).val(key);
});
$(event.data.target).empty().append(cities);
}
let stateBirth;
for (stateBirth in selectData) {
$('#country').append(`<option value="${stateBirth}">${stateBirth}</option>`);
}
$("#country").on("change", {target: "#city"}, updateSelects);
/* This one is working */
// if (4 > 3) {
// $("#country").val(selectedCountry);
// }
}).fail( () => { alert("Error!"); });
let selectedCountry = "GERMANY";
/* But I need to make this one work... */
// if (4 > 3) {
// $("#country").val(selectedCountry);
// }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="country">
<option>Please select a country</option>
</select>
<select id="city">
<option>Please select a city</option>
</select>
【问题讨论】:
-
要明确一点,问题1是,如何让下拉菜单在用户选择任何值之前默认显示“选择国家”和“选择城市”。问题二是,用户选择国家后如何预选城市。我理解正确吗?
-
如果我选择英格兰,预选城市应该是什么?
-
@Mr.Brickowski 是的,你理解正确!如果你选择英格兰,它仍然必须显示“选择一个城市”,直到用户选择英格兰的城市之一。
-
关于问题 2,要进行选项预选,首先您需要定义数据首先要选择哪个选项,并且需要更改 json 格式。因为目前没有提供有关预选的信息。
标签: javascript html jquery json