autocomplete - 如何扩展脚本自动完成程序?

标签 autocomplete scriptaculous

script.aculo.us 中的自动完成器期望服务器响应是 <ul>列表。我有什么方法可以扩展或替换这种行为,以便它可以采用 XML 或 JSON 文档的服务器响应?

是否还有一种方法可以扩展自动完成程序的渲染器,以便我可以将页脚添加到自动完成列表中?

最佳答案

是的,您可以扩展 script.aculo.us 的自动完成程序的行为。您可以通过覆盖 onComplete 来做到这一点。带有处理 json 数据并创建 <ul> 的代码的方法- 给你的 list 。然后将此列表发送至 updateChoices .

假设您在搜索“U”时将检索以下 JSON 响应:

[
  "Unicorn",
  "University"
]

可以处理上述响应的 Ajax.Autocompleter 扩展示例:
var MyCompleter = Class.create(Ajax.Autocompleter, {

    initialize: function($super, id_search, id_list, url, options) {
        $super(id_search, id_list, url, options);
    },

    onComplete: function(response) {
        var text = response.responseText;
        if (text.isJSON()) {
            this.handleJSON(text.evalJSON());
        }
        // else do nothing
    },

    handleJSON: function(json) {
        var htmlStr = '<ul>';
        json.each(function(item) {
            htmlStr += '<li>';
            htmlStr += item;
            htmlStr += '</li>';
        });
        htmlStr += '</ul>';
        this.updateChoices(htmlStr);
    }

});

还有一个例子说明如何replace autocompleter's width reset behaviour .

关于autocomplete - 如何扩展脚本自动完成程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932193/

相关文章:

php - JQuery 自动完成 PHP 文件的源路径

jquery - 自动完成应用值而不是标签到文本框

javascript - 如何将整个可见页面向下滚动到具有平滑效果的 anchor (Scriptaculous 或 jQuery)?

javascript - 原型(prototype)/脚本的悬停意图

wpf - 自动建议组合框 - MVVM

javascript - Kendo 自动完成多个关键字

search - 带连字符和小写过滤器的 Elasticsearch 通配符查询

javascript - Scriptaculous Ajax.Autocompleter 在 IE9 和 FF5 中失败

javascript - 赋予淡入淡出效果后显示选项卡的内容

javascript - Scriptaculous 自动完成 : Returns a List of Links, 希望单击链接而不是自动填充输入字段