jquery.autocomplete.js-自动完成是如何工作的?
我使用GET请求的结果调用AutoCompletejQuery。 自动完成函数调用如下所示:jquery.autocomplete.js-自动完成是如何工作的?,jquery,python,django,Jquery,Python,Django,我使用GET请求的结果调用AutoCompletejQuery。 自动完成函数调用如下所示: $('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete'); def iter_results(results): if results: for r in results: yield '%s|%s\n' % (r.first_name,
$('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete');
def iter_results(results):
if results:
for r in results:
yield '%s|%s\n' % (r.first_name, r.id)
url/pm/contact\u autocomplete返回元组列表。元组的第一部分是联系人的名称,第二部分是联系人的id
相应的函数(django视图的一部分)如下所示:
$('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete');
def iter_results(results):
if results:
for r in results:
yield '%s|%s\n' % (r.first_name, r.id)
现在我想知道jqueryautocomplete对first_name+id元组做了什么。实际上,第一个_名称被输入到输入字段中。但是id部分会发生什么呢。这是我需要的重要信息
我可以告诉jquery应该将id放在某个隐藏字段中吗
编辑:解决方案
<script type="text/javascript"><!--//
$('#id_project_manager_externally').autocomplete('/pm/contact_autocomplete').result(function(event, item) {$('#id_project_manager_externally_hidden').attr("value", item[1]);});//--></script>
您需要查看jquery.autocomplete.js源代码,python代码只需返回id和名称,以哈希字符分隔,每行一条记录。自动完成javascript处理该输出,因此这是您需要修改的代码的一部分,以便将ID放入隐藏字段中。有以下示例:
var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];
$("...").autocomplete(data, {
formatItem: function(item) {
return item.text;
}
}).result(function(event, item) {
location.href = item.url;
});
因此,基本上可以使用.result()选项填充隐藏字段。
e、 g.
$('my#u hidden_field').val(item.extra_值)代码>侵入自动完成js并不是我真正喜欢的方式。隐马尔可夫模型。。看起来比预期的要复杂。这看起来很有希望。我试试看。这是正确的答案。使用.result()选项可以替换隐藏字段的值。用户从“自动完成”下拉列表中选择一个选项后,将触发结果部分。