您需要更改源来满足以下规范(该小部件的文档中已概述)。源必须是包含以下内容的数组(或返回包含以下内容的数组):
- 简单字符串,或:
- 包含一个或多个
label
属性的对象value
。
如果由于某种原因您无法更改远程源返回的内容,则可以在成功检索到数据后对其进行转换。这样做的方法如下:
$("#tags").autocomplete({ source: function (request, response) { $.ajax({ url: "http://mysite.local/services/suggest.ashx", data: { query: request.term }, success: function (data) { var transformed = $.map(data, function (el) { return { label: el.phrase, id: el.id }; }); response(transformed); }, error: function () { response([]); } }); });});如您所见,您需要通过将函数传递给
source小部件的选项来进行AJAX调用。
这个想法是用来
$.map将您的数组转换为包含自动完成小部件可以解析的元素的数组。
还要注意,
data传递给AJAX调用的参数应该
?query=<term>在用户键入术语时结束。



