jquery.autocomplete.js - 自动完成是如何工作的?

标签 jquery python django

我使用 GET 请求的结果调用自动完成 jquery。 自动完成函数调用如下所示:

$('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete');

url/pm/contact_autocomplete 返回元组列表。元组的第一部分是联系人的姓名,元组的第二部分是联系人的 ID。

相应的函数(django View 的一部分)如下所示:

def iter_results(results):
        if results:
            for r in results:
                yield '%s|%s\n' % (r.first_name, r.id)

现在我想知道jquery 自动完成功能对first_name + id 元组做了什么。实际上,first_name 被放入输入字段中。但是 id 部分会发生什么。这是我需要的重要信息。

我可以告诉jquery id应该被放置到某个隐藏字段中吗?

link to js source

编辑:解决方案

<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> 

最佳答案

plugin docs有这个例子:

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() 选项来填充隐藏字段。 例如$('#my_hidden_​​field').val(item.extra_value);

关于jquery.autocomplete.js - 自动完成是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038031/

相关文章:

javascript - 如何更改包含字符串的元素之上的类?

javascript - 如何使用 jQuery 根据下拉列表中选择的内容显示元素?

python - nbconvert jupyter笔记本到pdf(带颜色)

python - Django/Python - 检查参数是否传递给类

java - 使用 Jackson Framework 进行 @RequestBody 注释的 Spring Boot ObjectMapper

javascript - sencha 日历错误未捕获类型错误 : Cannot read property 'indexOf' of undefined on page load

python - 随机选择一个 5 位数字和单独选择每个数字有什么区别?

Python:多处理无法完成作业

javascript - JQuery/Django 有办法构建 "click the text to edit"吗?

python - django 1.8 在另一个 View 中使用一个 View