<select class="form-control" id="problem_category" name="problem_category"> <option disabled selected>请选择问题类型</option> <script> // 创建XMLHttpRequest对象 var xhttp = new XMLHttpRequest(); // 设置请求方式和地址 xhttp.open("GET", "problem_categories.json", true); // 发送请求 xhttp.send(); var problemCategories = JSON.parse(this.responseText); for (const problemCategory of problemCategories.problem_categories) { document.write(`<option value="${problemCategory.id}">${problemCategory.name}</option>`); }; </script> </select> 在段代码的错误在哪里?
时间: 2023-05-24 14:05:01 浏览: 116
这段代码缺少一个事件监听器来处理请求完成后的响应。应该为xhttp对象添加一个onload事件监听器,将解析JSON和循环选项的代码放到该监听器中。修改后的代码如下:
```
<select class="form-control" id="problem_category" name="problem_category">
<option disabled selected>请选择问题类型</option>
<script>
// 创建XMLHttpRequest对象
var xhttp = new XMLHttpRequest();
// 设置请求方式和地址
xhttp.open("GET", "problem_categories.json", true);
// 添加事件监听器
xhttp.onload = function() {
var problemCategories = JSON.parse(this.responseText);
for (const problemCategory of problemCategories.problem_categories) {
document.write(`<option value="${problemCategory.id}">${problemCategory.name}</option>`);
};
};
// 发送请求
xhttp.send();
</script>
</select>
```
阅读全文