我搜索了自动完成包以实现我的自动完成搜索。但我发现的所有内容都是自动填充一个词。我需要一个单词列表 - 而不仅仅是一个单词。
它应该像堆栈标记输入一样。用户开始输入 - 如果有设置,则选择标签。根据需要插入尽可能多的标签,并且当他完成时,整个标签列表应该呈现由具有taggit的那些标签过滤的List。
但是如何实现搜索许多标签?自动填充仅适用于一个?!还是我明白了一些严重的错误?
答案 0 :(得分:1)
jQueryUI部分:
$("#id_of_your_input").keypress(function(){
$(this).autocomplete({
source: $(this).data('url'), ## or hard code it: source: '/api/...'
minLength: 2,
delay:300,
select: function(event, ui) {
$('#id_of_your_drop_down').val(ui.item.value);
}
});
});
处理$(this).data('url')
的视图:
import json
NUMBER_OF_RESULTS = 5
def view_for_your_api(request):
if not request.is_ajax():
return HttpResponse('false')
results = model.objects.all()[:NUMBER_OF_RESULTS]
data = json.dumps([{'label': r.name, 'value': r.name} for r in results])
return HttpResponse(data, 'application/json')
我假设你的模型中有r.name
。将其替换为您的领域或您的需要
答案 1 :(得分:0)
这是一个好主意“获取多个自动填充建议”。
以下是自动填充的工作原理。 例如,无论何时在文本框中键入内容,AJAX都会运行并返回特定文本的特定结果。
获得多个自动填充..
如果要执行多个自动完成,则需要根据重复出现的情况在列中保存多个数据或标记。或者在数据库中建立“*一对多关系”并返回所有这些值。