Django实现下拉输入
时间: 2023-11-26 09:06:52 浏览: 28
实现下拉输入需要使用JavaScript和Django的视图函数。
1. 在前端中定义一个输入框和一个下拉框。
```html
<input type="text" id="input-box">
<div id="dropdown"></div>
```
2. 在JavaScript中监听输入框的键盘事件,当输入框中的内容发生改变时向后端发送Ajax请求获取下拉框中的数据。
```javascript
$(document).ready(function() {
$("#input-box").on("input", function() {
var input = $(this).val();
$.ajax({
url: "/get_dropdown_data/",
data: {
"input": input
},
dataType: "json",
success: function(data) {
// 清空下拉框
$("#dropdown").empty();
// 将数据添加到下拉框中
$.each(data, function(i, item) {
$("#dropdown").append("<div>" + item + "</div>");
});
}
});
});
});
```
3. 在Django中定义一个视图函数,处理Ajax请求,根据输入框中的内容返回下拉框中的数据。
```python
from django.http import JsonResponse
def get_dropdown_data(request):
input = request.GET.get("input")
data = ["Apple", "Banana", "Cherry", "Durian"]
filtered_data = [item for item in data if input.lower() in item.lower()]
return JsonResponse(filtered_data, safe=False)
```
4. 在urls.py中定义一个路由,将Ajax请求映射到视图函数。
```python
from django.urls import path
from . import views
urlpatterns = [
path("get_dropdown_data/", views.get_dropdown_data, name="get_dropdown_data"),
]
```
这样就实现了一个简单的下拉输入功能。当用户在输入框中输入内容时,下拉框会显示与输入框中的内容相匹配的数据。