javascript - 自动建议多个搜索 jquery
问题描述
如何进行自动建议多值搜索?
我的观点:
def index(request):
...
results = []
if request.is_ajax():
q = request.GET.get('term', '')
if len(q) > 2:
results = list(Tag.objects.filter(name__istartswith=q).values_list(Lower('name'), flat=True))
results = [f'{i} ' for i in results]
return JsonResponse(results, safe=False)
...
html:
<div id="search">
<form method="get" action="{% url 'main:home' %}">
{% csrf_token %}
<input type="text" name="q" placeholder="Поиск по сайту" value="{{ request.GET.q }}">
<input type="submit" value="Найти">
</form>
</div>
<script>
function getCookie(name) {
var cookieValue = null;
if(document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for(var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
if(cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
$.ajaxSetup({
global: true,
beforeSend: function(xhr, settings) {
if(!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
xhr.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded; charset=UTF-8');
}
},
timeout: 8000
});
<!-- /Конец кода для работы csrf с ajax -->
$('#search input[name="q"]').autocomplete({
'source': '{% url "main:home" %}',
'minLength': 2,
'appendTo': "#search"
});
</script>
这可以正常工作,但有一个例外: 有人向我提供了https://jqueryui.com/autocomplete/#multiple,但我不明白如何处理它。我不擅长js,jq。请任何帮助都会有所帮助
解决方案
推荐阅读
- python-3.x - HTML-PARSING 并使用 python 从网页中获取链接
- flutter - Flutter:“pr.dismiss”无法在进度对话框中定义
- javascript - 如何使用 typescript 通过 node js 加载 wasm 模块?
- html - 如果直接在带有按钮的 HTML 中,引导模式可以完美工作,但如果它包含在具有动态输入的 React 组件中,则不会响应
- ember.js - 想在 ember js 中调用链接控制器的动作吗?
- javascript - 如何修复 Element 隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型?
- android-studio - 如何以图像形式显示使用arraylist和parcelable发送的意图过程中的数据?
- omnet++ - 在 Oment 静脉中,如何通过提供不发送或接收任何消息的车辆 ID 来获取车辆的速度?
- c# - 如何将条件字符串转换为布尔格式?
- angular - 想在 authguard 服务中调用服务方法