javascript - 如何在选择类型输入中放置占位符?

标签 javascript html rest

我遇到了一个相当奇怪的问题,我似乎无法弄清楚。所以我有一个表单,用户可以在其中选择他们来自哪个国家,我想在占位符中编码以使其看起来更好。我已经连接了一个 REST api 来获取世界上所有的国家并将它们显示为选项。

我试过 html <option value="" disabled selected>Choose Country...</option>和其他一些类似的。我相信这与我编写 javascript 以获取 API 的方式有关,但由于我是新手,所以我不太确定。

// set up global variables
const countriesList = document.getElementById("country");
let countries; //contains fetched data list

//establish connection with API
fetch("https://restcountries.eu/rest/v2/all")
.then(res => res.json())
.then(data => initialize(data))
.catch(err => console.log("Error: " + err));


function initialize(countriesData) {
countries = countriesData;
let options = ""; //assign option vriable empty string

// loop each country and assign it to options variable
for(let i=0; i<countries.length; i++){
  options += `<option value= "${countries[i].name}"> ${countries[i].name} </option>`;
}
countriesList.innerHTML = options;
}

上面是我用来获取 api 并将其显示在下拉选择菜单中的 javascript,问题是 api 替换了我在 html 代码中手动输入的每个选项标签。有什么建议么?干杯!

最佳答案

select 中只有一个option,作为占位符:

<select id=country>
    <option value=''>Select...</option>
</select>

然后让 JavaScript 附加生成的 HTML,而不是替换当前的 HTML。

countriesList.innerHTML += options;

关于javascript - 如何在选择类型输入中放置占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56569942/

相关文章:

javascript - 使用正则表达式替换字符串中的反斜杠

javascript - Unicode 字符转义序列未在 handlebar.js 中正确打印

javascript - JQuery REST 调用不起作用

web-services - token 已过期 - JSON REST API - 错误代码

javascript - JS/Angular - 找出父元素的宽度/高度内有多少 html 元素

javascript - 在 MVC 项目中使用 JavaScript 调用 Controller 函数

jquery - 如何使用 Jquery 和 Hype 为 HTML5 视频创建音量 slider

javascript - 如何在选择文件按钮上显示完整的文件名

javascript - 使用来自本地主机的 AWS Lambda REST URL

javascript - Google GeoChart 上带有文本的标记