我正在尝试使用Autocomplete 插件生成一个类似于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
电话,但我无法让它工作。我找到的最接近我可能需要的代码在这里,但它具有当前文档中未列出的 Autocomplete 选项,我不明白如何使用响应对象。
如果有人知道在 AJAX 请求中使用回调方法的示例,或者我如何注入转换代码的函数,我将不胜感激。
非常感谢任何见解或帮助。