前端输入框, 输入后可在这个框下拉列表展示查询接口查询结果, 接口地址是/url/delectName, 参数是输入的值, 返回值是{"id": ""; "name": ""}的格式, 下拉列表展示的id和name的拼接值, 选择后在输入框里的是name, 选择后可以再次查询, 并在输入框保存多个值, 只写前端即可,用js实现
时间: 2024-04-20 21:23:13 浏览: 127
你可以使用以下代码片段来实现前端输入框和拉列表展示查询结果的功能:
```html<!DOCTYPE html>
<html>
<head>
<title下拉列表查询示例</title>
< src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="searchInput" onkeyup="search()" placeholder="输入关键字">
<select id="searchResults" onchange="selectResult()">
<option value="">请选择</option>
</select>
<script>
// 查询接口地址
const apiUrl = "/url/delectName";
// 查询函数
function search() {
const searchInput = document.getElementById("searchInput");
const keyword = searchInput.value;
// 发起查询请求
fetch(apiUrl + "?name=" + keyword)
.then(response => response.json())
.then(data => {
const searchResults = document.getElementById("searchResults");
searchResults.innerHTML = "<option value=''>请选择</option>";
// 将查询结果添加到下拉列表中
data.forEach(result => {
const option = document.createElement("option");
option.value = result.id;
option.text = result.name;
searchResults.appendChild(option);
});
});
}
// 选择结果函数
function selectResult() {
const searchResults = document.getElementById("searchResults");
const selectedValue = searchResults.value;
if (selectedValue) {
const selectedText = searchResults.options[searchResults.selectedIndex].text;
const searchInput = document.getElementById("searchInput");
searchInput.value = selectedText;
// 再次查询
search();
// 保存多个值
// 可以使用数组或其他数据结构来保存多个值
// 在这里只做演示,将值直接追加到输入框中
searchInput.value += "," + selectedText;
}
}
</script>
</body>
</html>
```
这段代码使用了HTML、JavaScript和Fetch API来实现所需的功能。在输入框中输入关键字后,通过`fetch`函数发起查询请求,获取到查询结果后将其添加到下拉列表中。选择下拉列表中的结果后,会再次发起查询请求,并将选中的值显示在输入框中。用户可以选择多个结果,每次选择后输入框中会追加一个值。你可以根据实际需求修改代码来适应你的项目。
阅读全文