这是
previous JQueryUI Autocomplete question,I asked的延续.
这一次,我有我的数据返回…但我不知道我如何定义要显示的HTML以及如何使用我的结果动态更新该html.
所以,这是我的jquery ….
Home.js
function AutoComplete(element) { var cache = {}; $(element).autocomplete({ minLength: 2,source: function (request,response) { if (request.term in cache) { response(cache[request.term]); return; } else { $.getJSON("/api/autocomplete/" + encodeURIComponent(request.term),function (data) { cache[request.term] = data; response(data); }); } } }); }
这在我的视图中连接起来
的Index.aspx
<script type="text/javascript"> $(document).ready(function () { AutoComplete("#searchQuestion"); }) </script>
现在..我不知道我怎么告诉它使用一些(尚未制作)html / div / etc. …然后填充< ul> list(我假设我扩展回调,上面..而不是调用这个响应(数据)方法.. wtf是吗?)
解决方法
这是我的jQuery UI自动完成的工作示例.希望能帮助到你:
var cache = {}; $("#textBox").autocomplete({ source: function(request,response) { if (request.term in cache) { response($.map(cache[request.term].d,function(item) { return { value: item.value,id: item.id } })) return; } $.ajax({ url: "/Services/AutoCompleteService.asmx/GetEmployees",/* I use a web service */ data: "{ 'term': '" + request.term + "' }",dataType: "json",type: "POST",contentType: "application/json; charset=utf-8",dataFilter: function(data) { return data; },success: function(data) { cache[request.term] = data; response($.map(data.d,function(item) { return { value: item.value,id: item.id } })) },error: HandleAjaxError // custom method }); },minLength: 3,select: function(event,ui) { if (ui.item) { formatAutoComplete(ui.item); // custom method } } });
如果您现在还没有这样做,请获取Firebug.这是一个非常宝贵的Web开发工具.您可以在此JavaScript上设置断点,看看会发生什么.