【问题标题】:JQuery and Bootstrap's Typeahead, it seems to ignore some JSON results?JQuery 和 Bootstrap 的 Typeahead,好像忽略了一些 JSON 结果?
【发布时间】:2012-11-14 19:15:28
【问题描述】:

这个真的让我很烦恼,希望有人能弄清楚发生了什么。

JS:

        $('#search').typeahead({
    source: function(typeahead, query){ 
        $.ajax({
            url: "/autocomplete_bs.php",
            type: "GET",
            data: "q="+query ,
            dataType: "JSON",
            async: true,
            success: function(data){
                if (data == null) {
                    data = '{"name":"name","url":"url"}';
                }
                typeahead.process(data);        //If the returned object is not a null json object, THEN process it.
            }
        });
    },
    property: 'name',
    items:8,
    onselect: function (obj) { 
        window.location = obj.url;
    }
});

autocomplete_bs.php 在这里:http://examine.com/autocomplete_bs.php?q=xxxx

您可以在此处测试自动完成功能:http://examine.com/(右上角)

令人难以置信的是,有些结果显示,有些则没有。

  • 检查。 com/autocomplete_bs.php?q=bacopa - 显示
  • 检查。 com/autocomplete_bs.php?q=aging - 显示
  • 检查。 com/autocomplete_bs.php?q=life - 不显示?
  • 检查。 com/autocomplete_bs.php?q=food - 只显示第一个结果,不显示第二个
  • 检查。 com/autocomplete_bs.php?q=creat - 显示多个结果,但跳过“什么是硝酸肌酸?”

控制台没有显示任何可以解释这一点的错误。有什么线索吗?

(抱歉,我的声誉太低了,而且我忘记了我必须破坏 URL 的其他主要登录信息)。

【问题讨论】:

  • 您是否检查了 ajax 响应以查看它包含的内容?另外,data = '{"name":"name","url":"url"}' 应该是data = {"name":"name","url":"url"},此时代码中的数据是 javascript 对象,而不是 json 字符串。你为什么用async: false

标签: php javascript jquery twitter-bootstrap bootstrap-typeahead


【解决方案1】:

Welp,原来我忘记了 typeahead 有一个匹配器功能,可以过滤掉它显示的内容。

所以这条线修复了它:

matcher: function () { return true; },

【讨论】:

    【解决方案2】:

    examine.com/autocomplete_bs.php?q=life - 不显示任何内容,因为返回对象中的“名称”字段不包含任何“生命”

    返回:

    [{"name":"Stack - Anti-Aging","url":"http://examine.com/autocomplete_go.php?q=life&url=stacks/anti-aging.html"}]
    

    换句话说,您设置 Typeahead 以显示那些“name”包含实际字符串(例如“life”)的结果,即使服务器返回更多项目..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      相关资源
      最近更新 更多