【发布时间】:2012-10-04 15:19:42
【问题描述】:
我正在尝试使用Autocomplete plugin 生成一个类似于IMDB 的搜索框,我希望它:
- 在选项中显示的不仅仅是文本。
- 在选择选项时充当链接(因为每个选项都是唯一的记录)。
- 如果用户选择,他们会按下按钮并在他们的输入上执行搜索。
文档说它可以使用 3 种类型的数据源:
数据源可以是:
具有本地数据的数组
一个字符串,指定一个 URL
回调
我可以让自动完成功能与第二个选项一起使用,但是无法转换返回的数据,它只需要 JSON 并将其直接放在下拉列表中。这意味着源url只能返回{label: "blah", value: "blurg"}格式的数据。
如果我可以注入一个转换函数,那么我可以让 url 返回我喜欢的任何 JSON,该函数会将数据更改为自动完成所期望的格式,但也可以按照我的意愿进行格式化,并且所有这些都不会更改由url(我不会从那里返回 HTML,只返回 JSON)。
例如url 可以返回这个:
{ label:"Grosse Point Blank", id: 3, img:"/imgs/gpb.png",...}
一个转换函数可以把它变成这样的东西:
{ label:"<a href='/films/3/grosse-point-blank'><img src='/imgs/gpb.png' />Grosse Point Blank</a>", value="grosse-point-blank"}
我已尝试使用选项 3(回调)和 getJSON 调用,但我无法让它工作。我找到的最接近我可能需要的代码是here, but it has options that aren't listed in the current docs for Autocomplete,但我不明白如何使用响应对象。
如果有人知道在 AJAX 请求中使用回调方法的示例,或者我如何注入转换代码的函数,我将不胜感激。
非常感谢任何见解或帮助。
【问题讨论】:
标签: jquery-ui jquery jquery-ui-autocomplete