javascript - 未调用自动完成 formatItem, Firebug 中也没有任何错误

标签 javascript jquery autocomplete jquery-autocomplete jquery-ui-autocomplete

基本上我想显示一个图像,除此之外还有文本。这是我的自动完成代码:

 $("#tagBox").autocomplete({
                source: '/Friends/FriendsTagHandler.aspx?FileID=<%=Request.QueryString["FileID"] %>',
                scroll: true,
                scrollHeight: 300,
                formatItem: function (data, i, n, value) {
                    console.log(values);
                    var values = value.split(".");
                    return "<img src='/images/ProfileAvatar/ProfileImage.aspx?AccountID=" + values[0] + "'/> " + values[1];
                },
                formatResult: function (data, value) {
                    console.log(value);
                    return value.split(".")[1];
                }
            });

但是,我的 formatItem 或 formatResult 既没有被调用,也没有在 firebug 控制台中收到任何错误。

更新:我在 SO 本身的某处读到 formatItem 已被弃用,我们应该从服务器本身返回格式化数据。所以我从我的服务器返回格式化数据:

片段

 foreach (var item in friends)
            {
                sb.Append("<img src='/images/ProfileAvatar/ProfileImage.aspx?AccountID=" + item.AccountID.ToString() + "'/>" + item.FirstName + " " + item.LastName).
                        Append(Environment.NewLine);
            }
            //context.Response.ContentType = "text/plain";

            context.Response.Write(sb.ToString());

当我在浏览器中点击 url 时,我可以正确地看到图片和旁边的名称。然而,自动完成框中什么都没有出现。

最佳答案

你得到 jQueryUI autocomplete它的祖先,jQuery autocomplete使困惑。 jQueryUI 自动完成没有 formatItemformatResultscrollscrollHeight 选项。

要完成您所追求的目标,您需要覆盖 _renderItem 函数,like in this example :

$("#tagBox").autocomplete({ ... })
    ._renderItem = function (ul, item) {
        // Custom item display logic here.
    };

此外,您的数据应该是一个返回数据的函数、数据本身,或者是一个以下列格式返回数据的URL:

  • 字符串数组:['option1', 'option2', 'option3'],或
  • 具有属性 labelvalue(或两者)的对象数组:[{ label: 'option1', value: 'option1'}, { ... }]

关于javascript - 未调用自动完成 formatItem, Firebug 中也没有任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748996/

相关文章:

javascript - 阻止 jQuery 自动完成插件在用户单击返回时忘记文本

android - 在 PlaceAutocomplete (Google Api) 中预填充地址

javascript - 如何获取在不同源域的 iframe 中嵌入另一个页面的网页的 url

javascript - Underscore.js 使用嵌套数组查找并返回元素

jquery - 我们如何使用 jquery 删除 span 标签而不丢失数据?

javascript - 将文件从浏览器窗口拖到软件中

javascript - 带有预先输入的 Angular 自动完成功能

javascript - 如何用DOM检索style.top,还有其他方法吗?

javascript - 使用 Angular 2 CLI,如何使用绝对路径,这样我就不必使用 import { .. } from '../../../shared/thing'

javascript - 脚本标签的 src 属性是否应该为 null 或者空字符串?