django input输入框输入文字时,在输入框下面弹出相匹配数据的列表框 实现的代码示例
时间: 2023-05-20 20:04:56 浏览: 111
javascripts实现输入框自动匹配字符实例
4星 · 用户满意度95%
以下是一个简单的实现示例:
在 Django 的视图函数中,可以使用 Ajax 技术实现输入框下面弹出相匹配数据的列表框。具体步骤如下:
1. 在前端页面中,使用 jQuery 监听输入框的 keyup 事件,获取输入框中的文本内容,并将其发送到后端视图函数中。
```
$(document).ready(function() {
$('#input-box').keyup(function() {
var input_text = $(this).val();
$.ajax({
url: '/search/',
type: 'POST',
data: {'input_text': input_text},
success: function(data) {
// 处理返回的数据
}
});
});
});
```
2. 在后端视图函数中,接收前端发送的数据,并根据输入的文本内容查询数据库中的匹配数据,将查询结果返回给前端。
```
from django.http import JsonResponse
from myapp.models import MyModel
def search(request):
if request.method == 'POST':
input_text = request.POST.get('input_text')
results = MyModel.objects.filter(name__contains=input_text)
data = [{'id': r.id, 'name': r.name} for r in results]
return JsonResponse({'data': data})
```
3. 在前端页面中,处理后端返回的数据,将匹配结果显示在列表框中。
```
success: function(data) {
var results = data['data'];
var list_html = '';
for (var i = 0; i < results.length; i++) {
list_html += '<li data-id="' + results[i].id + '">' + results[i].name + '</li>';
}
$('#list-box').html(list_html);
}
```
其中,`#input-box` 是输入框的 ID,`#list-box` 是列表框的 ID,`MyModel` 是数据库中的模型类,`name` 是模型类中的一个字段。
阅读全文