【问题标题】:Rails, JSON Object, jQuery, Auto-CompleteRails、JSON 对象、jQuery、自动完成
【发布时间】:2011-02-26 14:09:14
【问题描述】:

我正在使用这个带有 rails 的 jquery 自动完成插件:http://docs.jquery.com/Plugins/Autocomplete

我不知道如何在我的 Rails 控制器和我的 javascript 文件中格式化我的结果。

我的控制器中有类似的东西...

@query = params[:q].downcase
@json = User.all(:login => /^#{@query}/)
respond_to do |format|
  format.js  { render :json => @json.to_json(:only => "login"), :layout => false }  
end

然后在我的 script.js 文件中...

    $("#form").autocomplete('/url', {
    width: 320,
    dataType: 'json',
    highlight: false,
    scroll: true,
    scrollHeight: 300
    })

但我不知道如何解析数据,所以我的自动完成功能只是一次获得所有结果的原始数组。

如何处理 script.js 文件和/或控制器中的 JSON 以使其正常工作?

【问题讨论】:

    标签: jquery ruby-on-rails json jquery-plugins autocomplete


    【解决方案1】:

    我实际上在 Demo 中发现了一个 JSON 示例。它看起来像这样:

        function format(user) {
            return user.login + " (" + user.name + ")";
        }
        $("#login").autocomplete('/url', {
            multiple: false,
            delay: 100,
            dataType: "json",
            parse: function(data) {
                return $.map(data, function(row) {
                    return {
                        data: row,
                        value: row.login,
                        result: row.login
                    }
                });
            },
            formatItem: function(item) {
                return format(item);
            }
        }).result(function(e, item) {
            $("#content").append("<p>selected " + format(item) + "</p>");
        });
    });
    

    【讨论】:

      【解决方案2】:

      根据该插件的documentation,没有dataType 选项。您可能还会将插件的一个分支的配置选项与另一个分支的源混合。

      您是否尝试过从服务器获取的建议数据的默认格式(管道分隔,如果我没记错的话)?

      顺便说一句,我确实找到了这个 fork here,它为自动完成插件添加了 JSON 支持。

      【讨论】:

        猜你喜欢
        • 2012-05-08
        • 1970-01-01
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 2012-03-20
        • 2012-04-04
        相关资源
        最近更新 更多