javascript - 对于使用选择元素(ajax、bootstrap)时的每个问题
问题描述
我尝试<select><option> ... </option></select>
使用 jquery + ajax 在元素中循环 foreach,但是在我这样做之后它没有显示任何值。
当我尝试控制台并完美显示结果数据时没有错误。但是当我为每个做的时候,“数据”并没有出现在我的选项元素中。
$("#rm-btn").on("click", function(e) {
let normIn = $("#norm-input").val();
$.ajax({
url: "regis/checkrm",
type: "POST",
dataType: "json",
data: {
norm: normIn
},
success: function(res) {
if (res) {
$("#data-pas")
.slideDown("slow")
.html(
`<table class="table table-borderless" id="datatab">
<tbody>
<tr>
<td>Name</td>
<td>:</td>
<td>` + res.name + `</td>
<td>Sex</td>
<td>:</td>
<td>` + res.sex + `</td>
</tr>
<tr>
<td>Date_birth</td>
<td>:</td>
<td>` + res.date_birth + `</td>
<td>Address</td>
<td>:</td>
<td>` + res.address + `</td>
</tr>
<tr>
<td>Status</td>
<td>:</td>
<td>` + res.status + `</td>
<td>Job</td>
<td>:</td>
<td>` + res.job + `</td>
</tr>
</tbody>
</table>`
);
$.ajax({
url: "regis/getdata",
type: "POST",
dataType: "json",
success: function(result) {
if (result) {
$("table").after(
`<div class="form-group form-row my-2 mx-2">
<label>Choose data</label>
<select class="form-control" id="data" name="data"> ` +
$.each(result, function(i, data) {
$("data").append(`<option>` + data.name + `</option>`);
}) +
`</select>
</div>`
);
} else {}
}
});
} else {
console.log(res);
}
}
});
});
解决方案
您总是需要附加完整的标签
$("table").after(
`<div class="form-group form-row my-2 mx-2">
<label>Choose data</label>
<select class="form-control" id="data" name="data"></select>
</div>`);
$data = $("#data");
$.each(result, function(i, data) {
$data.append(`<option>${data.name}</option>`);
})
推荐阅读
- javascript - 如何在 Vue.js 中将列表拆分为页面?
- rest - 使用 OpenAPI 到底有什么意义?
- r - 使用 tidyeval 编写自定义 case_when 函数以在 dplyr mutate 中使用
- azure - 单个天蓝色应用程序中的多个功能未触发
- angular - 在 Angular (8.0) 中创建将在 FormGroup 和 FormArray 中使用的可重用部分或组件
- javascript - 使用 ajax 和 php 动态更改 html
- node.js - 如何将反应中的默认端口从 3000 更改为另一个端口?
- arrays - 在 J 中生成具有重复值的随机整数数组
- python - 多个图未显示在单个图中
- r - 为什么 R 只读取前九个文件