用js写出模糊查询地址并且有下拉菜单
时间: 2024-03-09 16:49:35 浏览: 105
好的,我可以为您提供一个简单的 JavaScript 代码段,用于实现模糊查询地址并带有下拉菜单的功能。您可以根据自己的需求进行修改和完善。
首先,您需要在页面中添加一个文本输入框和一个下拉菜单:
```html
<input type="text" id="address-input" placeholder="请输入地址关键词">
<select id="address-select"></select>
```
然后,您可以使用 AJAX 技术向后台发送请求,获取输入关键词匹配的地址列表。在获取到数据后,将地址列表渲染到下拉菜单中:
```javascript
// 获取输入框和下拉菜单元素
var addressInput = document.getElementById("address-input");
var addressSelect = document.getElementById("address-select");
// 输入框输入事件监听
addressInput.addEventListener("input", function() {
// 获取输入框的值
var keyword = addressInput.value;
// 发送 AJAX 请求获取地址列表
var xhr = new XMLHttpRequest();
xhr.open("GET", "/api/address?q=" + keyword, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var addresses = JSON.parse(xhr.responseText);
// 清空下拉菜单
addressSelect.innerHTML = "";
// 循环添加地址选项
for (var i = 0; i < addresses.length; i++) {
var option = document.createElement("option");
option.value = addresses[i];
addressSelect.appendChild(option);
}
}
};
xhr.send();
});
```
上述代码中,我们使用了 XMLHttpRequest 对象发送了一个 GET 请求,并通过监听其 readyState 和 status 属性来判断是否请求成功。在成功获取到数据后,我们清空了下拉菜单,并循环添加了地址选项。其中,option 元素的 value 属性设置为地址字符串,这样在提交表单时,我们就可以直接获取到用户选择的地址了。
最后,您需要在后台编写一个 API 接口来响应请求。由于后台语言和框架的不同,这里就不提供具体的实现方式了。不过,您可以参考一些第三方地图服务提供商的 API,如高德地图、百度地图等,它们都提供了类似的地址查询接口。
阅读全文