前端输入框, 输入后可在这个框下拉列表展示查询接口查询结果, 接口地址是/url/delectName, 参数是输入的值, 返回值是{"id": ""; "name": ""}的格式, 下拉列表展示的id和name的拼接值, 选择后在输入框里的是name, 选择后可以再次查询, 并在输入框保存多个值, 只写前端即可,用js实现
时间: 2024-04-10 16:33:08 浏览: 102
你可以使用以下代码示例来实现前端输入框的:
```html
<!DOCTYPE html>
<html<head>
<title>下拉列表查询例</title>
</head>
<body>
< type="text" id="inputBox" on="fetchData()"/>
<select id="Box" onchange="updateInput <option value="">选择结果</option </select>
<script>
constBox = document.getElementById('inputBox');
constBox = document.getElementById('resultBox');
letValues = [];
async fetchData() {
const inputValue inputBox.value;
ifinputValue.length > 0) {
const url =url/delectName?param=${encodeURIComponent(inputValue)}`;
try {
const response = await fetch(url);
const data = await response.json();
displayResults(data);
} catch (error) {
console.error('Error:', error);
}
} else {
clearResults();
}
}
function displayResults(data) {
clearResults();
data.forEach(item => {
const option = document.createElement('option');
option.value = item.id;
option.text = item.name;
resultBox.appendChild(option);
});
}
function clearResults() {
resultBox.innerHTML = '<option value="">选择结果</option>';
}
function updateInput() {
const selectedOption = resultBox.options[resultBox.selectedIndex];
const selectedName = selectedOption.text;
if (selectedOption.value && selectedName) {
inputBox.value = selectedName;
selectedValues.push(selectedOption.value);
}
}
</script>
</body>
</html>
```
在上述代码中,我们使用了 `fetch` 函数来发送异步请求获取查询结果,并使用 `async/await` 来处理异步操作。当输入框的值发生变化时,会触发 `fetchData` 函数来查询数据并在下拉列表中展示结果。当在下拉列表中选择一个结果时,会调用 `updateInput` 函数来更新输入框的值,并将选择的结果的id存储在 `selectedValues` 数组中。
请注意,上述代码中的接口地址 `/url/delectName` 和返回的数据格式 `{"id": "", "name": ""}` 只是示例,请根据实际情况进行修改。另外,此代码只实现了前端部分,你需要结合后端接口来完善整个功能。
阅读全文