制作一个搜索框,框内输入的文字时弹出下拉列表供选择,当选中下拉列表的数据时存入另一个盒子,内容改变时下拉列表跟着改变,
时间: 2024-10-20 16:13:33 浏览: 25
JS设置下拉列表框当前所选值的方法
制作这样的搜索框通常涉及到前端的JavaScript和HTML/CSS配合。这里我们可以使用HTML的`<select>`元素结合JavaScript或者更现代的选择器如`<datalist>`和`<option>`来实现基本的动态下拉列表。同时,使用事件监听(如`addEventListener`)来处理用户交互。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
#selectedResult {
display: none;
margin-top: 10px;
}
</style>
</head>
<body>
<input type="text" id="searchBox" oninput="updateDropdown()" placeholder="搜索...">
<datalist id="optionsList">
<!-- 这里可以动态填充下拉选项 -->
<option value="选项1">Option 1</option>
<option value="选项2">Option 2</option>
<!-- 更多选项... -->
</datalist>
<div id="selectedResult">
当前选择:<span id="selectedValue"></span>
</div>
<script>
function updateDropdown() {
const input = document.getElementById('searchBox');
const options = document.getElementById('optionsList');
const inputValue = input.value.toLowerCase();
options.innerHTML = ""; // 清空现有选项
if (inputValue) {
const filteredOptions = options.getElementsByTagName("option").filter(option => option.textContent.toLowerCase().includes(inputValue));
filteredOptions.forEach(option => options.appendChild(option));
} else {
// 如果输入为空,展示所有选项
options.getElementsByTagName("option").forEach(option => options.appendChild(option));
}
// 当用户点击下拉项时,更新显示结果
options.addEventListener('change', function(e) {
const selectedValue = e.target.value;
document.getElementById('selectedValue').textContent = selectedValue;
document.getElementById('selectedResult').style.display = 'block'; // 显示已选内容
});
}
// 初始化
updateDropdown();
</script>
</body>
</html>
```
在这个示例中,当用户输入文字时,会根据输入值过滤并显示相关的下拉选项。当用户从下拉列表中选择一项时,选中的数据会被显示在另一个`<div>`中。
阅读全文